sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

hvordan man laver dagens citat ved hjælp af php og mysql i rækkefølge efter id

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

Og så vælger du det som:

   $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!!:Jeg har elimineret datediff, så ID'et, der returneres fra datoforskellen, er DIREKTE i WHERE.

Hvad dette gør er at beregne forskel mellem første dag og nuværende dato . Så hver dag vil den datediff være 1 større.DATEDIFF(CURDATE()+1, '$firstday') as datediff kan tolkes som

datediff = differenceBetween(Currentday +1 and firstDay)
  • I går var 2011-07-06, derfor datediff = 2011-07-07 (there is +1!) - 2011-07-06 hvilket er 1
  • i dag er det 2011-07-08 - 2011-07-06 hvilket er 2
  • i morgen 2011-07-09 - 2011-07-06 hvilket er 3
  • i overmorgen 2011-07-10 - 2011-07-06 hvilket er 4
  • om en måned vil det være 2011-08-08 - 2011-07-06 hvilket er 33

datediff er hver dag større med 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
.....

Eller kort:Hver dag vil være et andet citat, startende med ID 1 fremad.

Jeg kan ikke forklare mere end dette..

EDIT #2:5 citater om dagen

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

anden redigering takket være ajreal (SQL LIMIT syntaksfejl )

EDIT #3:5 citater om dagen, der kan ændres efter variabel...

mulighed 1:

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

mulighed 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

mulighed 3:

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

Så vælg en af ​​de muligheder, du kan lide, og tilføj den før dette:

$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. Fungerer MySQL Workbench autofuldførelse?

  2. hvilke privilegier der skal indstilles for webstedsdatabasebruger/klient i mysql

  3. Mysql-FEJL:ASCII '\0' under import af sql-fil på linux-serveren

  4. SQL Select-streng virker ikke