Как изменить в rand(?)?

#php

#php

Вопрос:

У меня проблема с заказом элемента на моей странице. Я хочу, чтобы элемент упорядочивался случайным образом, но менялся каждый день. Я использую код ORDER by rand() и в () я хочу, чтобы отображалась сегодняшняя дата. пример, если сегодня 10.12.2020, я хочу, чтобы в моем коде был ПОРЯДОК по rand(10). Это мой код

 include("pagination/function.php");

 $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
      $limit = 12; //if you want to dispaly 10 records per page then you have to change here
      $startpoint = ($page * $limit) - $limit;
      $statement = "product  ORDER by rand()"; //you have to pass your query over here


 $res=mysqli_query($link,"select * from product {$statement} LIMIT {$startpoint} , {$limit}");
 while ($row=mysqli_fetch_array($res))
 {
 

Ответ №1:

Вы заявляете, что хотите сдать 10 экзамен на сегодня, но тогда случайный порядок будет одинаковым каждый 10-й день каждого месяца каждого года. Если вы хотите, чтобы это было случайным образом каждый отдельный день, тогда используйте временную метку UNIX:

 $seed = time();
$statement = "product  ORDER by rand($seed)";
 

Если вам действительно нужен день месяца, тогда получите номер дня:

 $seed = date("j");
$statement = "product  ORDER by rand($seed)";
 

Возможно, вы сможете использовать функцию даты и времени MySQL, но я никогда не пробовал их RAND() использовать.

Комментарии:

1. Я использовал $seed = date(«jh»); так что день и час. каждый день каждый час будет упорядочивать их по-разному. спасибо, что показали мне, как это сделать.

2. Это нормально, если вы этого хотите, но тогда в следующем месяце на 10-й день в этот час он будет иметь тот же случайный порядок, что и сегодня в этот час.

3. да, я знаю, что это не проблема, потому что я добавляю новые элементы каждую неделю, поэтому до следующего месяца список будет меняться.