phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

как да направите цитат на деня с помощта на php и mysql в ред по id

    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;

РЕДАКТИРАНЕ!!:Премахнах datediff, така че идентификационният номер, върнат от разликата в датата, е ДИРЕКТНО в КЪДЕ.

Това, което прави, е изчисляване на разликата между първия ден и текущата дата . Така че всеки ден този datediff ще бъде с 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

така че dateddiff е всеки ден по-голям с 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
.....

Или скоро:Всеки ден ще бъде различен цитат, започвайки с идентификатор 1 напред.

Не мога да обясня повече от това...

РЕДАКТИРАНЕ #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;


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. ГРЕШКА в Mysql:ASCII '\0' при импортиране на sql файл на linux сървър

  2. експортиране на структура на таблицата в Excel файлове с phpmyadmin

  3. Грешка в MySQL:Дублиран запис за първичен ключ

  4. Импортираните таблици не се показват в phpmyadmin

  5. Как да конвертирате .sql файл в таблици в mysql db