2016-06-16 7 views
-1

Ich habe einen PHP-Code, der die untenstehende Tabelle durch eine AJAX-Anfrage von der gleichen Seite generiert.PHP if-Anweisung in einem abgerufenen Array

Die Abfrage mysql ruft die Daten in einem Bereich von 7 Tagen von "heute" ab.

Die abgerufenen Daten werden an den tbody der Tabelle angehängt, wie im ersten Screenshot unten gezeigt.

mein Code:

$result = mysqli_query($con," SELECT * FROM `BIMTECH_academy_2016_classes` 
WHERE `RealDate` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) 
ORDER BY RealDate ASC, RealFrom ASC; "); 

    $html = ""; // a variable 
    while($row = mysqli_fetch_array($result)) 
    { 
     $html.= "<tr>"; 
      $html.= "<td colspan='4' id='date'>" . $row['Date'] . "</td>"; 
     $html.= "</tr>"; 
     $html.= "</tr>"; 
      $html.= "<td>" . $row['CourseName'] . "</td>"; 
      $html.= "<td>" . $row['From'] . "</td>"; 
      $html.= "<td>" . $row['To'] . "</td>"; 
      $html.= "<td>" . $row['InstructorName'] . "</td>"; 
      //$html.= "<td>" . $row['ClassNumber'] . "</td>"; 
     $html.= "</tr>"; 
    } 

enter image description here

Ergebnisse sind alle richtig, aber was ich versuche zu tun, von dem duplizierten Datum immer rot (n), wie unten in der zweiten Screenshot gezeigt .

enter image description here

Außerdem muss ich die anderen Tage der Tabelle hinzufügen, die keinen Inhalt hat so schließlich 7 Tage in der Tabelle sehe ich (teilweise mit Daten, und andere ohne „off days“)

Irgendwelche Ideen ??

+0

möchten Sie können Ihre Daten in 'array()' _ (zum Beispiel) _ als erstes speichern und dann können Sie HTML-Code aus diesem Array (foreach) erstellen. Dann können Sie die gleichen Daten aus dem Array filtern und sie mit roter Farbe markieren. – pes502

Antwort

1

Sollte das tun, was u

$result = mysqli_query($con," SELECT * FROM `BIMTECH_academy_2016_classes` 
WHERE `RealDate` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) 
ORDER BY RealDate ASC, RealFrom ASC; "); 

    $html = ""; // a variable 
    $lastDate; 
    while($row = mysqli_fetch_array($result)) 
    { 
     if($lastDate != $row['Date']) 
     { 
       $lastDate = $row['Date']; 
       $html.= "<tr>"; 
        $html.= "<td colspan='4' id='date'>" . $row['Date'] . "</td>"; 
       $html.= "</tr>"; 
     } 
     $html.= "<tr>"; 
      $html.= "<td>" . $row['CourseName'] . "</td>"; 
      $html.= "<td>" . $row['From'] . "</td>"; 
      $html.= "<td>" . $row['To'] . "</td>"; 
      $html.= "<td>" . $row['InstructorName'] . "</td>"; 
      //$html.= "<td>" . $row['ClassNumber'] . "</td>"; 
     $html.= "</tr>"; 
    } 
+0

Danke @Monarchis, was ist mit dem anderen Ziel, das ich erreichen möchte? Irgendwelche Ideen – Mazen

+0

'Außerdem muss ich der Tabelle die anderen Tage hinzufügen, die keinen Inhalt haben, also sehe ich schließlich sieben Tage in der Tabelle (einige mit Daten, und andere ohne" freie Tage ")' – Mazen