phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

comment faire la citation du jour en utilisant php et mysql dans l'ordre par identifiant

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

Et puis vous le sélectionnez comme :

   $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 !! :J'ai éliminé datediff, donc l'ID renvoyé par la différence de date est DIRECTEMENT dans WHERE.

Cela permet de calculer la différence entre le premier jour et la date actuelle . Ainsi, chaque jour que datediff sera 1 plus grand.DATEDIFF(CURDATE()+1, '$firstday') as datediff peut être interprété comme

datediff = differenceBetween(Currentday +1 and firstDay)
  • Hier était le 2011-07-06, donc datediff = 2011-07-07 (there is +1!) - 2011-07-06 qui est 1
  • aujourd'hui, c'est 2011-07-08 - 2011-07-06 qui est 2
  • demain 2011-07-09 - 2011-07-06 qui est 3
  • après-demain 2011-07-10 - 2011-07-06 qui est 4
  • dans un mois ce sera 2011-08-08 - 2011-07-06 qui est 33

donc, datediff est chaque jour plus grand de 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
.....

Ou bientôt :chaque jour sera une citation différente, en commençant par l'ID 1.

Je ne peux pas expliquer plus que ça..

EDIT #2 :5 citations par jour

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

deuxième édition grâce à ajreal (erreur de syntaxe SQL LIMIT )

EDIT #3 :5 devis par jour, modifiables par variable..

choix 1 :

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

option 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

option 3 :

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

Choisissez donc l'une de ces options que vous aimez et ajoutez-la avant ceci :

$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;