2016-07-14 8 views
0

Ich habe eine Tabelle „Auswahl“ genannt, wie so strukturiert ....PHP MYSQL - Wie erstelle ich Formular mit mehreren Dropdown-Listen für Tag gruppiert/Woche

----------------------------------------------- 
id | serving_date | serving_description 
----------------------------------------------- 
1 | 04/07/2016 | Food description goes here 
2 | 04/07/2016 | Food description goes here 
3 | 04/07/2016 | Food description goes here 
4 | 05/07/2016 | Food description goes here 
5 | 05/07/2016 | Food description goes here 
6 | 05/07/2016 | Food description goes here 
7 | 06/07/2016 | Food description goes here 
8 | 06/07/2016 | Food description goes here 
9 | 06/07/2016 | Food description goes here 
11 | 07/07/2016 | Food description goes here 
12 | 07/07/2016 | Food description goes here 
13 | 07/07/2016 | Food description goes here 
----------------------------------------------- 

Ich brauche jetzt ein Bestellformular produzieren in PHP und was ich gerne hätte, ist eine Dropdown-Box für jedes Datum, also möchte ich anhand der obigen Beispiel-Tabelle 4 Dropdown-Listen für jeden Tag haben, die die 3 Auswahlmöglichkeiten an diesem Tag enthalten.

Mir geht es gut mit Codierungs-Dropdown-Boxen, um die Daten aus einer anderen Tabelle zu lesen, aber völlig fest, wie man durch jede Zeile geht und gruppiert die Zeilen nach Datum in separate Dropdowns automatisch.

Vielen Dank für jegliche Hilfe.

Update ...

ich es geschafft haben, es zum Laufen zu bringen folgendes mit ....

$current_date = null; 
$current_week = null; 

while ($row = $stmt->fetch()) { 

if ($row["choice_date"] != $current_date) { 
$current_date = $row["choice_date"]; 

echo "<select name=" . $current_date . ""; 
echo " . $current_date . "; 
} 
echo '<option value="'.$row['choice_description'].'">'.$row['choice_description'].'</option>'; 
} 

Der nächste Schritt ist das Formular für die Verarbeitung zu unterbreiten, aber ich bin zu kämpfen .. Normalerweise würde ich $ _GET mit dem Feldnamen aus dem Formular verwenden. Aber in diesem Fall wird der Name als Wert $ current_date gesetzt und dies ändert sich, wenn das Skript ausgeführt wird.

Gibt es eine Möglichkeit, alle Auswahlen, die der Benutzer vorgenommen hat, einfach zu erfassen?

Ich habe auch einen Screenshot der Datenbank beigefügt, um die Dinge ein wenig klarer zu machen. choices_table

+0

Bitte senden Sie Ihre Anfrage –

+0

"SELECT * FROM Auswahl WHERE serving_date = '14/07/16 '" –

+0

Versuchen Sie "wählen Sie * aus Auswahlmöglichkeiten wo serving_date = '14/07/16' Gruppe von serving_date, serving_description"; –

Antwort

0

Zuerst sollten Sie Daten aus der Datenbank

function getResults($conn){ 
    $sql = "SELECT * FROM choices"; 
    $result = $conn->query($sql); 
    if ($result->num_rows > 0) { 
    $dataArray=array(); // Create a blank array 
     while($row = $result->fetch_assoc()) { 
      $dataArray[$row['serving_date']][]=$row; 
      // Store data in array by date 

     } 
     return $dataArray; 
    }else { 
    echo "0 results"; 
    } 

} 


Ihre Daten wil in einem Array erhalten, wo Schlüssel uniques Daten und Werte Werte sind zu diesem Zeitpunkt fällt,

jetzt können Sie ein Drop-Down-Anzeige wo Sie wieder ein Array für Datum durchqueren und auf jeder Möglichkeit, Drop-Down-Check von nur tun Zustand auf klicken, wenn array_key_exists() für dieses Datum und wenn existiert dann Daten erhalten wie diese

print_r($dataArray['Selected Date from Dropdown']); 

Ich hoffe, Sie verstanden Logik dahinter

+0

Danke wird es einen Wirbel geben. –

0

Vor allen gleichen Datum haben die gleiche Beschreibung oder andere Beschreibung.

Wenn dieselbe Beschreibung verwendet wird, können Sie GROUP BY für die Spalte serving_date und serving_description verwenden.

Andere Hand, wenn Sie dasselbe Datum mit einer anderen Beschreibung haben, müssen Sie GROUP BY Serving-Datum verwenden.

Verwandte Themen