Я пытаюсь подключиться к базе данных 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)
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 .....
Я не могу больше объяснить это.
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 () в таблице и выберите случайную цитату.
Затем отметьте эту цитату как цитату для текущего дня и подайте ее всем остальным пользователям.
Повторение.