Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

टाइमस्टैम्प पर आधारित डेटा व्यवस्थित करें mysql + PHP

यहां एक उदाहरण दिया गया है कि मैं इसे कैसे संभालूंगा। मैं आपकी क्वेरी नहीं बदलूंगा - यह ठीक है जैसा है। मान लें कि आप नवीनतम से शुरुआती पोस्ट तक क्रमबद्ध डेटाबेस में सबकुछ दिखाना चाहते हैं। PHP को भारी भारोत्तोलन को संभालने दें। मैंने जानबूझकर कुछ चीजों को पढ़ने में आसान बनाने के लिए कार्यों को नेस्ट करने के बजाय कई लाइनों में तोड़ दिया है। जैसा आप ठीक समझें कंडेन्स करें।

मैं यह दावा नहीं कर रहा हूं कि ऐसा करने का यह सबसे अच्छा तरीका है। केवल वही जो मैं उपयोग करता हूं।

//MOCK UP SOME DISPLAY DATA - YOU WOULD USE YOUR QUERY RESULT INSTEAD
$rows = array();
$rows[] = date('Y-m-d H:i:s');
$rows[] = date('Y-m-d H:i:s');
$rows[] = date('Y-m-d H:i:s');
$rows[] = date('Y-m-d H:i:s', mktime(0, 0, 0, date('n'), date('j') - 1, date('Y')));
$rows[] = date('Y-m-d H:i:s', mktime(0, 0, 0, 12, 24, 2014));
$rows[] = date('Y-m-d H:i:s', mktime(0, 0, 0, 12, 25, 2014));
$rows[] = date('Y-m-d H:i:s', mktime(0, 0, 0, 12, 26, 2014));
$rows[] = date('Y-m-d H:i:s', mktime(0, 0, 0, 3, 2, 2001));

//CREATE AN ARRAY OF THE REPLACEMENTS YOU WANT
$aArray = array();
$aArray[date('Y-m-d')] = 'Today';
$aArray[date('Y-m-d', mktime(0, 0, 0, date('n'), date('j') - 1, date('Y')))] = 'Yesterday';
$aArray[date('Y-m-d', mktime(0, 0, 0, date('n'), date('j') - 2, date('Y')))] = 'Day before Yesterday';
$aArray['2014-12-25'] = 'Christmas 2014';

//INITIALIZE SOME VARIABLES
$cLastHeader = '';
$cCurrHeader = '';

//THIS WOULD BE YOUR QUERY RESULTS LOOP
foreach ($rows AS $nNull => $cDate) {
    $cLookup = substr($cDate, 0, 10);  //TRIM OUT THE TIME FROM CURRENT RECORD

    //IS DATE IN ARRAY? IF NOT, FORMAT
    if (isset($aArray[$cLookup])) {
        $cCurrHeader = $aArray[$cLookup];
    } else {
        $cCurrHeader = $cLookup; //WOULD SHOW 'YYYY-MM-DD'
        $cCurrHeader = date('F Y', strtotime($cLookup)); //WOULD SHOW 'MONTH YYYY'
    }

    //HAS HEADER CHANGED? IF SO PRINT
    if ($cCurrHeader != $cLastHeader) {
        $cLastHeader = $cCurrHeader;
        print($cCurrHeader . "\n");
    }

    //PRINT RECORD
    print("\t" . $cDate . "\n");
}

इसका आउटपुट है :

Today
    2015-05-28 18:40:35
    2015-05-28 18:40:35
    2015-05-28 18:40:35
Yesterday
    2015-05-27 00:00:00
December 2014
    2014-12-24 00:00:00
Christmas 2014
    2014-12-25 00:00:00
December 2014
    2014-12-26 00:00:00
March 2001
    2001-03-02 00:00:00


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं PHP में MySQL API को मिला सकता हूँ?

  2. बड़ी MySQL तालिका निर्यात करना

  3. स्थानीय mysql सर्वर को AWS में माइग्रेट करने का प्रयास कर रहा है

  4. क्या MySQL कतार क्वेरी करता है?

  5. अजीब - mysql का sql ::SQLException इसके प्रकार से नहीं पकड़ा जाता है, लेकिन std ::अपवाद के रूप में पकड़ा जाता है और सफलतापूर्वक वापस डाला जाता है