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




html mysqli calendar nested-loops (3)

मेरे पास एक 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

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


Answers

मैंने अभी अपनी मेरी एसक्यूएल तालिका संरचना के आधार पर अंतिम कोड स्निपेट संपादित किया है 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>";
?>

महत्वपूर्ण: कृपया ध्यान दें कि यह उत्तर 200 9 में लिखा गया था और यह 2018 में आज सबसे अधिक लागत प्रभावी समाधान नहीं हो सकता है। ब्राउज़र और अन्य ओपन सोर्स रेंडरर इस समय से बेहतर थे।

प्रिंसएक्सएमएल पर एक नज़र डालें

यह निश्चित रूप से पीडीएफ कनवर्टर के लिए सबसे अच्छा एचटीएमएल / सीएसएस है, हालांकि यह मुफ़्त नहीं है (लेकिन हे, आपका प्रोग्रामिंग या तो मुक्त नहीं हो सकता है, इसलिए यदि यह आपको 10 घंटे का काम बचाता है, तो आप घर मुक्त हैं (क्योंकि आपको भी आवश्यकता है ध्यान दें कि वैकल्पिक समाधानों के लिए आपको सही सॉफ़्टवेयर के साथ एक समर्पित सर्वर स्थापित करने की आवश्यकता होगी)

ओह हाँ, क्या मैंने उल्लेख किया कि यह पहला (और शायद केवल) HTML2PDF समाधान है जो पूर्ण ACID2 करता है?

प्रिंसएक्सएमएल नमूने





php html mysqli calendar nested-loops