Ausgabe einer Speisekarte in PHP

mille

Erfahrenes Mitglied
brauch ma denkanstoß bzw ne idee :)....

... ich versuch euch kurz mein problem zu erläutern.
Ich will eine speisekarte in tabellen ausgeben. die überschrift ist tabelle 1 und die unterpunkte (also die menüs bzw gerichte) sind in der tabelle 2....

und so will ich das ausgeben:

_______________________________
|ueberschrift.....|2teüberschrift |
------------------------------------------------------
| - getränk1 | gericht 1 |
| - getränk 2 | gericht 2 |
------------------------------------------------------
freizeile
------------------------------------------------------
|überschrift 3 | ueberschrift 4 |
-------------------------------------------------------
| - nochngericht|- nochn andres
------------------------------------------------------

die tabelle hat ca 8-12 ueberschriften mit jeweils andren speisen (z.b. sandwiches etc pp)

bei der tabelle handelt es sich um eine stinknormale tabelle ... oben erste zeile <tr> und 2spalten <td>....

in der zeile dadrunter sollen dann x viele gerichte rein.... zielenumbruch per <br> nicht mit ner neuen zeile!


ich hoffe das ist bis dahin nachvollziehbar :)

wie mach ich das mit einer ausgabe das ich per while schleife eine ausgabe mache in der ich in einer tabelle verschidene werte speiche... ich kriech das nicht gebacken, klingt dumm ;)

bzw kann mir einer ein rat geben...


PS: die zuordnung der gerichte erfolgt per ID (die ID der überschrift entspricht einer zuordnungsspalte in der DB in der dann immer die gleiche ID von der ueberschrift steht, damit ich die gerichte in der gleichen DB auseinanderhalten kann :))

so das wars... wäre dankbar
 
Also willst du pro Überschrift verschiedene Gerichte haben?

das ist dann 1:m

[Table ueberschrift]
Id
Name

[Table gericht]
Ueberschrift_id
Getraenk
Speise


z.b. wenn ich das nun richtig zusammen gefasst habe

würde das heissen das du zur Ueberschrift nehmen wir mal
[Table ueberschrift]
Id = 1;
Name = 'Schoenes Sandwich mit Getränk';

[Table gericht]
Ueberschrift_id = 1;
Getraenk = 'Spezi'
Speise = 'Hawai Sandwich'

nun willst du also diese beiden tabellen verbinden
das sieht dann so aus.

PHP:
$ueberschrift_id= 1;

$sql =  "select ueberschrift.Name , gericht.Ueberschrift_id, gericht.Getraenk,gericht.Speise ";
		."from ueberschrift,gericht where ";
		."gericht.Ueberschrift_id = ueberschrift.Id and where ueberschrift.Id = $ueberschrift_id ";
		."order by ueberschrift.Name";

dieser select würde dir nun zur Überschrift 'Schoenes Sandwich mit Getränk' die Speise und das Getränk 'Hawai Sandwich' und Spezi zurrückgeben!

nun müsstest du nur noch die Ausgabe machen
hier mal mit dem ganzen code

PHP:
<?
$ueberschrift_id= 1;

$sql =  "select ueberschrift.Name , gericht.Ueberschrift_id, gericht.Getraenk,gericht.Speise ";
		."from ueberschrift,gericht where ";
		."gericht.Ueberschrift_id = ueberschrift.Id and where ueberschrift.Id = $ueberschrift_id ";
		."order by ueberschrift.Name";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res)){
?>
Überschrift = <?=$row['Name']?><br>
Getränk = <?=$row['Getraenk']?><br>
Speise = <?=$row['Speise']?><hr>
<?}?>

hoffe ich konnte dir helfen!?
 
so vieleicht:
PHP:
<?
$result=mysql_query("select * Tabelle_mit_den_ueberschriften");
$ueberschriften=$mysql_fetch_array($result);
$i = 1;
echo "<table><tr>";
while($ueberschriften){
		echo "<td>";
			echo "<table><tr><td>$ueberschriften[ueberschrift]</td></tr>";
			$result=mysql_query("select * Gerichte WHERE ID=$ueberschriften[ID]");
		   	while($gerichte=mysql_fetch_array($result)){
		   		echo "<tr><td>$gerichte[essen]</td></tr>";
		   	}
		   	echo "</table>";
		echo "</td>";
		if ($i%2=0) echo "</tr><tr><td>&nbsp;</td><td>&nbsp;</td></tr><tr>";
		$i++;
}
echo "</tr></table>";
?>
sind wahrscheinlich noch ziehmlich viele Tippfehler drinn, und getestet ist es auch nicht, aber vom Prinzip her müsste es so gehen.

gruß tob
 
Wenn du nicht unbedingt 2 Tabellen benutzen willst, die du dann verknüpfen musst, kannst du auch eine Tabelle benutzen und die Spalte "Kategorie" hinzufügen.
Dann musst du zuerst die Kategorie auslesen und danach alle anderen Datenbankeinträge "where cat = $cat" sozusagen.

Ich stelle mir das ganze etwa so vor

PHP:
//blabla connection usw

//1.Abfrage
$cats = mysql_query("Select cat from table group by cat");

//dann die Einzelnen Einträge in einer Schleife auslesen
while($zeile = mysql_fetch_row($cats))
{
 echo "<h2>{$zeile[0]}</h2>";
 echo "<b>Speise....Preis<b><br>"
 $unter = mysql_query("select speise,preis from table where cat='{$zeile[0]}'");
 while($u_zeile = mysql_fetch_row($unter));
 { 
  echo "{$u_zeile['speise']}.....{$u_zeile['preis']}";
 }
}
Sieht gefährlich aus, ich weiß! Sollte aber so in etwa funktionieren - freihand geschrieben also KEINE GARANTIE :rolleyes: ;)
 
Zurück