sql >> Databáze >  >> Database Tools >> phpMyAdmin

jak vytvořit nabídku dne pomocí php a mysql v pořadí podle id

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

A pak to vyberete takto:

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

UPRAVIT!!:Odstranil jsem datediff, takže ID vrácené z rozdílu v datech je PŘÍMO v WHERE.

Tím je vypočítán rozdíl mezi prvním dnem a aktuálním datem . Takže každý den bude datum o 1 větší.DATEDIFF(CURDATE()+1, '$firstday') as datediff lze interpretovat jako

datediff = differenceBetween(Currentday +1 and firstDay)
  • Včera bylo 2011-07-06, tedy datediff = 2011-07-07 (there is +1!) - 2011-07-06 což je 1
  • dnes je 2011-07-08 - 2011-07-06 což je 2
  • zítra 2011-07-09 - 2011-07-06 což je 3
  • pozítří 2011-07-10 - 2011-07-06 což je 4
  • za měsíc to bude 2011-08-08 - 2011-07-06 což je 33

takže datediff je každý den větší o 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
.....

Nebo zakrátko:Každý den bude uvedena jiná nabídka, počínaje ID 1 vpřed.

Nemohu vysvětlit více než toto..

ÚPRAVA #2:5 citací denně

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

druhá úprava díky ajreal (chyba syntaxe SQL LIMIT )

ÚPRAVA #3:5 uvozovek denně, měnitelné podle proměnné...

možnost 1:

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

možnost 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

možnost 3:

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

Vyberte si tedy jednu z možností, která se vám líbí, a přidejte ji před toto:

$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. SSH tunel přes PhpMyAdmin

  2. #1045 - Přístup odepřen pro uživatele 'root'@'localhost' (s použitím hesla:ANO)

  3. Uživatel nemůže provést chybu výběru 1142

  4. Pracovní plocha Eclipse se při spuštění zhroutí