как сделать котировку дня с использованием php и mysql в порядке по id

Я пытаюсь подключиться к базе данных MySQL и получать данные, которые мне нужны, чтобы получить только (данные) по порядку по идентификатору (ежедневно) и отделить оба эти данных и называть их двумя разными переменными, база данных выглядит примерно так:

------------------------------ | ID | Data | Data2 ------------------------------ | 1 | tea | hot | 2 | milk | hot | 3 | pepsi | cold 

и вывод будет только одной строкой (одна информация)

Я не делаю это как указано выше), это просто для уточнения …. и что лучше всего сортировать и использовать для огромных данных в UTF-8?

Редактировать:
Можете ли вы вернуть 5 строк вместо 1? по ID? например, для первого дня (1-2-3-4-5) ID и для второго дня (6-7-8-9-10) и так далее?

  quotes ---------------------------------- | id | data | data2 ---------------------------------- | 1 | first quote | translated quote | 2 | second... | bla bla 

И затем вы выбираете его как:

  $firstday="2011-06-06"; $getquote = mysql_query("SELECT * FROM quotes WHERE id=(DATEDIFF(CURDATE()+1, '$firstday'))"); $quote = mysql_fetch_object($getquote); echo $quote->data . $quote->data2; 

EDIT !!: я удалил датифф, поэтому идентификатор, возвращаемый с разницы дат, НЕПРАВИЛЬНО в ГДЕ.

Это означает, что вычисляет разницу между первым днем ​​и текущей датой . Поэтому каждый день, который датирует, будет 1 больше. DATEDIFF(CURDATE()+1, '$firstday') as datediff может быть интерпретировано как

 datediff = differenceBetween(Currentday +1 and firstDay) 
  • Вчера был 2011-07-06, поэтому datediff = 2011-07-07 (there is +1!) - 2011-07-06 который 1
  • сегодня, это 2011-07-08 - 2011-07-06 который 2
  • завтра 2011-07-09 - 2011-07-06 который 3
  • послезавтра 2011-07-10 - 2011-07-06 который 4
  • через месяц это будет 2011-08-08 - 2011-07-06 что составляет 33

так, датифик каждый день больше на 1

 quotes ------------------------- |id| data ------------------------- |1| quote day 1 (because date difference from start == 1) |2| quote 2 day 2 (datediff == 2) |3| quote 3 day 3 (datediff == 3) |4| quote 4 day 4 ..... 

Или коротко: каждый день будет другая цитата, начиная с ID 1 вперед.

Я не могу больше объяснить это.


EDIT # 2: 5 котировок в день

 $offset = date_diff(new DateTime('now'), new DateTime('2011-08-29'))->format('%d'); $getquote = "SELECT * FROM quotes LIMIT {$offset},5"; 

второе редактирование благодаря ajreal ( синтаксическая ошибка SQL LIMIT )


РЕДАКТИРОВАТЬ № 3: 5 котировок в день, изменяемый переменной.

Опция 1:

 $choose=0; //statically defined, only first of that day will pop out 

вариант 2:

 $choose = mysql_real_escape_string($_GET["qid"]); //which one will be defined in url.. (watch out, people can figure it out and browse through all quotes 

вариант 3:

 $choose = rand(0,4); //will choose it randomly from those 5 daily quotes 

Поэтому выберите один из этих параметров, который вам нравится, и добавьте его до этого:

 $offset = 5*date_diff(new DateTime('now'), new DateTime('2011-08-29'))->format('%d') + $choose; $getquote = mysql_query("SELECT * FROM quotes WHERE id = '$offset'"); $quote = mysql_fetch_object($getquote); echo $quote->data . $quote->data2; 

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

Затем отметьте эту цитату как цитату для текущего дня и подайте ее всем остальным пользователям.

Повторение.