phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

wie man mit php und mysql das angebot des tages in der reihenfolge nach id erstellt

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

Und dann wählen Sie es wie folgt aus:

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

BEARBEITEN!!:Ich habe datediff eliminiert, also ist die ID, die von der Datumsdifferenz zurückgegeben wird, DIREKT in WO.

Was dies tut, ist Differenz zwischen dem ersten Tag und dem aktuellen Datum zu berechnen . Also wird dieser datediff jeden Tag um 1 größer.DATEDIFF(CURDATE()+1, '$firstday') as datediff kann als

interpretiert werden
datediff = differenceBetween(Currentday +1 and firstDay)
  • Gestern war 2011-07-06, also datediff = 2011-07-07 (there is +1!) - 2011-07-06 das ist 1
  • heute ist 2011-07-08 - 2011-07-06 das ist 2
  • morgen 2011-07-09 - 2011-07-06 das ist 3
  • übermorgen 2011-07-10 - 2011-07-06 das ist 4
  • in einem Monat ist es 2011-08-08 - 2011-07-06 das ist 33

also ist datediff jeden Tag um 1 größer

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
.....

Oder kurz:Jeden Tag ein anderer Kurs, beginnend mit ID 1 vorwärts.

Mehr kann ich nicht erklären..

EDIT #2:5 Zitate pro Tag

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

zweite Bearbeitung dank ajreal (SQL LIMIT syntax error ). )

EDIT #3:5 Kurse pro Tag, änderbar durch Variable..

Möglichkeit 1:

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

Möglichkeit 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

Möglichkeit 3:

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

Wählen Sie also eine dieser Optionen aus, die Ihnen gefällt, und fügen Sie sie davor ein:

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