php - प्रति दिन कई बार पीएचपी लूप




html mysqli (2)

मेरे पास एक mysql तालिका है जो इस तरह दिखती है

id          date                    day
1           2016-03-10 15:00:00     monday
2           2016-03-10 16:00:00     monday
3           2016-03-10 17:00:00     monday
4           2016-03-11 15:00:00     tuesday
5           2016-03-11 16:00:00     tuesday
6           2016-03-11 17:00:00     tuesday
7           2016-03-11 18:00:00     tuesday

और फिर मैं निम्नलिखित php कोड का उपयोग कर रहा हूं ताकि अब और 3 महीने के बीच की तारीख और समय की जानकारी निकाली जा सके

<?php 
session_start();
if(isset($_SESSION["userID"])){
    $start=date("Y-m-d H:i:s");
echo $stop= date('Y-m-d H:i:s', strtotime("+3 months", strtotime($start)));
    $result2 = $con->query("select * from event WHERE start_at BETWEEN '".$start."' AND '".$stop."'
ORDER by start_at ASC");
}else{
    header('Location: Login.php');
    }
 ?>

और फिर मेरे एचटीएमएल बॉडी में मैंने ऐसा कुछ टाइप किया है

 <?php
     echo "<table><thead><tr><th>Day</th><th>Time</th></tr></thead>";
// output data of each row
while($row = $result2->fetch_assoc()) {
    echo "<tr><td>".$row["name"]."</td><td> ".date('G:i', strtotime($row["start_at"]))."</td></tr>";
}
echo "</table>";
?>

जो निम्न परिणाम उत्पन्न करता है

Day     Time
Monday  15:00
Monday  16:00

इत्यादि। लेकिन मुझे लगता है कि परिणाम यह है

Monday 2016-03-10
15:00
16:00
17:00
Tuesday 2016-03-11
15:00
16:00
17:00
18:00

मुझे वांछित आउटपुट देने के लिए अपना कोड कैसे बदल सकता है, पर विचार?


मैंने अभी अपनी मेरी एसक्यूएल तालिका संरचना के आधार पर अंतिम कोड स्निपेट संपादित किया है I परीक्षण नहीं किया गया लेकिन मुझे आशा है कि आपको यह विचार मिलेगा:

<?php
    $day = null;
    echo "<table><thead><tr><th>--</th><th>--</th></tr></thead>";
    while($row = $result2->fetch_assoc()) {
        if($day != $row["name"]) {
            $day = $row["name"];
            echo "<tr><td>".$row["name"]."</td><td> ".strstr($row["date"], " ", -1)."</td></tr>";
        } else {
            echo "<tr><td>".strstr($row["start_at"], " ")."</td><td></td></tr>";
        }
    }
    echo "</table>";
?>

संपादित करें :

मैंने अभी देखा है कि डेटाबेस से वह समय "start_at" नामक पंक्ति से आता है कोड फिक्स्ड


यह आपकी ज़रूरत है

<?php
$start=date("Y-m-d H:i:s");
$stop= date('Y-m-d H:i:s', strtotime("+3 months", strtotime($start)));

$result2 = $con->query("select * from event WHERE date BETWEEN '".$start."' AND '".$stop."' ORDER by date ASC");

echo "<table>";
$day = null;
while($row = $result2->fetch_assoc()) {
    if($day != $row['day']){
        $day = $row["day"];
        echo "<tr><td>".ucfirst($row['day'])."</td><td>".date('Y-m-d', strtotime($row["date"]))."</td></tr>";
        echo "<tr><td colspan='2'>".date('G:i', strtotime($row["date"]))."</td></tr>";
    }else{
        echo "<tr><td colspan='2'>".date('G:i', strtotime($row["date"]))."</td></tr>";
    }
}
echo "</table>";
?>




nested-loops