سؤال

إليك البيانات الخاصة بي:

id date  
1 2009-01-01 10:15:23  
2 2009-01-01 13:21:29  
3 2009-01-02 01:03:13  
4 2009-01-03 12:20:19  
5 2009-01-03 13:01:06 

ما أود القيام به هو مجموعة كل تاريخ وثم قائمة أرقام معرف أسفل كل تاريخ. يجب أن يكون الحصول على قيم التاريخ واضحة ومن ثم ركوب الدراجات من خلال لهم للحصول على الإدخالات التي تقع على التاريخ؟ هذا هو كفاءة؟

وحتى الانتاج بلدي ستبدو:

2009-01-01  
1  
2   
2009-01-02  
3  
2009-01-03  
4  
5  
هل كانت مفيدة؟

المحلول

$query = "SELECT DATE(date) as mydate, id FROM your_data_table ORDER BY mydate, id";
$result = $pdo->query($query);

$oldDate = false;
while ( list($date, $id) = $result->fetch(PDO::FETCH_NUM) ) {
    if ( $oldDate != $date ) {
        echo "$date\n$id\n";
        $oldDate = $date;
    } else {
        echo "$id\n";
    }
}

وبدلا من أن يفعل ذلك في العديد من الاستفسارات، أنت فقط جلب جميع البيانات في وقت واحد. إذا كنت بحاجة فقط بعض التواريخ ثم عليك فقط وضع بند WHERE قبل ORDER BY.

نصائح أخرى

ومواعيد المخزنة لديك لديهم معلومات حول الوقت (نوع العمود هو DATETIME أو الطابع الزمني)، وذلك للقيام مجموعة من، تحتاج إلى استخراج جزء التاريخ فقط زمنية، يمكنك استخدام في DATE () الدالة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top