phpMyAdmin
 sql >> डेटाबेस >  >> Database Tools >> phpMyAdmin

आईडी द्वारा क्रम में php और mysql का उपयोग करके दिन का उद्धरण कैसे करें?

    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;

संपादित करें !!:मैंने dateiff को हटा दिया है, इसलिए दिनांक अंतर से लौटाई गई ID सीधे WHERE में है।

यह क्या करता है पहले दिन और वर्तमान तिथि के बीच अंतर की गणना करें . तो हर दिन वह दिनांक 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 . है

इसलिए, डेटिफ़ हर दिन 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";

अजरियल के लिए दूसरा संपादन धन्यवाद (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. PhpMyAdmin के माध्यम से समग्र विदेशी कुंजी बाधा?

  2. MySQL स्टैंड-इन संरचना देखने के लिए। यह क्या है?

  3. MySQL त्रुटि 1036:तालिका केवल पढ़ी जाती है

  4. मैंने CTE का उपयोग करने के लिए MariaDB 10.2.20 में अपडेट किया। अभी भी गैर-मान्यता प्राप्त स्टेटमेंट प्रकार मिल रहा है। (निकट के साथ) phpMyAdmin में

  5. वेब मैट्रिक्स से वर्डप्रेस डेटाबेस कैसे निर्यात करें