Nochmal Checkboxen-Formular & MySQL

Nochmal Checkboxen-Formular & MySQL

am 03.09.2005 11:42:53 von Sascha Blum

Hallo Leute,

ich hätte da noch eine kleine Rückfrage nochmal zu meinen letzten Thema
hier:

Verständnisfrage: PHP-FAQ: 11.10. Wie kann man Checkboxen verarbeiten? in
Verbindung mit MySQL
Datum:
Samstag, 27. August 2005 13:51:26
Gruppen:
de.comp.lang.php.datenbanken


Bleiben wir einfach mal beim bisherigen Pizza-Beispiel ...

Mir wurde ja empfohlen mein DB-Design zu überarbeiten.
In der Form von:



CREATE TABLE Zutaten (
IDZutat...,
Bezeichnung...
);

CREATE TABLE Pizzen (
IDPizza...,
BestelltAm...
...
);

CREATE TABLE PizzaHatZutaten (
IDPizza...,
IDZutat...,

FOREIGN KEY IDPizza REFERENCES Pizzen (IDPizza),
FOREIGN KEY IDZutat REFERENCES Zutaten (IDZutat)
);

Wobei das mit dem FOREIGN KEY wollte nicht klappen, kam zu Fehlermeldung -
kann jetzt aber nicht mehr sagen wie die hieß ... - hab den Teil
weggelassen und mal ein wenig über google geforscht ...

.... im Grund entspricht das ja in etwa diesem Beispiel da wenn ich mich
nicht irre: http://www.heddesheimer.de/coaching/warengruppen.html

Nur halt die Felder heißen anders und so ...

Meine MySQL DB hat auch TYPE=MyISAM Tabellen, vielleicht klappte deshalb
dieses FOREIGN KEY nicht - aber es geht ja anscheinend wenn ich nach dem
obrigen Beispiel da gehe mit den Warengruppen da auch ohne!?

Aber nochmal zurück zum Checkbox-Formular. Könnte ich das in dieser Form da
so machen?:

Das Formular so:

Salami

Pilze

Sardellen


dann bräuchte wohl meine Tabele Zutaten folgende Felder:

IDZutat, zutat1, zutat2, zutat3

und zum Eintragen müste das dann doch so irgendwie laufen oder?:


$DatabasePointer=mysql_connect("mein_host", "user", "pw");
mysql_select_db("meine_db", $DatabasePointer);

//hier müste man wohl erstmal Variablen tauschen?

$zutat1=$_REQUEST['zutat[0]'];
$zutat2=$_REQUEST['zutat[1]'];
$zutat3=$_REQUEST['zutat[2]'];

$SQL = "INSERT INTO zutaten (idpizza, zutat1, zutat2, zutat3) VALUES ('',
$zutat1, $zutat2, $zutat3);
mysql_query($SQL, $DatabasePointer);

Und wenn nicht alle Zutaten aktiviert wurden, dann ist hinterher ein Feld
leer oder? Geht natürlich nur wenns bei 3 Zutaten bliebe - soweit habe ich
das schon verstanden.

Oder seh ich da nun etwas falsch? Oder macht man soetwas ganz anders?
Oder soll ich bei den Checkboxen da jeweils andere "namen" vergeben?

Besten Dank vorab.

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 03.09.2005 20:56:53 von Stefan Rybacki

Sascha Blum wrote:
> Hallo Leute,
>
> ich hätte da noch eine kleine Rückfrage nochmal zu meinen letzten Thema
> hier:
>
> Verständnisfrage: PHP-FAQ: 11.10. Wie kann man Checkboxen verarbeiten? in
> Verbindung mit MySQL
> Datum:
> Samstag, 27. August 2005 13:51:26
> Gruppen:
> de.comp.lang.php.datenbanken
>

Nicht gelesen.

>
> Bleiben wir einfach mal beim bisherigen Pizza-Beispiel ...
>
> Mir wurde ja empfohlen mein DB-Design zu überarbeiten.
> In der Form von:
>
>
>
> CREATE TABLE Zutaten (
> IDZutat...,
> Bezeichnung...
> );
>
> CREATE TABLE Pizzen (
> IDPizza...,
> BestelltAm...
> ...
> );
>
> CREATE TABLE PizzaHatZutaten (
> IDPizza...,
> IDZutat...,
>
> FOREIGN KEY IDPizza REFERENCES Pizzen (IDPizza),
> FOREIGN KEY IDZutat REFERENCES Zutaten (IDZutat)
> );
>


Design sieht in Ordnung aus.


>...
> Das Formular so:
>
> Salami

> Pilze

> Sardellen

>

Lieber:
Salami

Pilze

Sardellen


> dann bräuchte wohl meine Tabele Zutaten folgende Felder:
>
> IDZutat, zutat1, zutat2, zutat3

nein.

>
> und zum Eintragen müste das dann doch so irgendwie laufen oder?:
>
>
> $DatabasePointer=mysql_connect("mein_host", "user", "pw");
> mysql_select_db("meine_db", $DatabasePointer);
>
> //hier müste man wohl erstmal Variablen tauschen?
>
> $zutat1=$_REQUEST['zutat[0]'];
> $zutat2=$_REQUEST['zutat[1]'];
> $zutat3=$_REQUEST['zutat[2]'];
>
> $SQL = "INSERT INTO zutaten (idpizza, zutat1, zutat2, zutat3) VALUES ('',
> $zutat1, $zutat2, $zutat3);
> mysql_query($SQL, $DatabasePointer);
>

Nein.

1. du fügst hier nur in PizzaHatZutaten ein

INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1), (idpizza,zutat2),
(idpizza, zutat3)

(Offensichtlich mußt du vorher noch ne Pizza anlegen, damit du ein ID der Pizza hast)

> Und wenn nicht alle Zutaten aktiviert wurden, dann ist hinterher ein Feld
> leer oder? Geht natürlich nur wenns bei 3 Zutaten bliebe - soweit habe ich
> das schon verstanden.

Offensichtlich hast du das Design noch nicht ganz verstanden.

Zutaten enthält alle möglichen Zutaten
Pizzen enthält alle Pizzen

PizzaHatZutaten enthält für jede Pizza in Pizzen 0 oder mehr Zutaten

>
> Oder seh ich da nun etwas falsch? Oder macht man soetwas ganz anders?
> Oder soll ich bei den Checkboxen da jeweils andere "namen" vergeben?

Nein willst du nicht.

>
> Besten Dank vorab.
>
> Viele Grüße

Bis denn dann
Stefan

>
> Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 05.09.2005 13:09:19 von Sascha Blum

Hallo,

Stefan Rybacki wrote:


>> Das Formular so:
>>
>> Salami

>> Pilze

>> Sardellen

>>
>
> Lieber:
> Salami

> Pilze

>
> Sardellen


ok dann verwende ich da nun die id's ...



>> $DatabasePointer=mysql_connect("mein_host", "user", "pw");
>> mysql_select_db("meine_db", $DatabasePointer);
>>
>> //hier müste man wohl erstmal Variablen tauschen?
>>
>> $zutat1=$_REQUEST['zutat[0]'];
>> $zutat2=$_REQUEST['zutat[1]'];
>> $zutat3=$_REQUEST['zutat[2]'];
>>
>> $SQL = "INSERT INTO zutaten (idpizza, zutat1, zutat2, zutat3) VALUES ('',
>> $zutat1, $zutat2, $zutat3);
>> mysql_query($SQL, $DatabasePointer);
>>
>
> Nein.
>
> 1. du fügst hier nur in PizzaHatZutaten ein
>
> INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1),
> (idpizza,zutat2), (idpizza, zutat3)
>
> (Offensichtlich mußt du vorher noch ne Pizza anlegen, damit du ein ID der
> Pizza hast)

OK hieße dann vor dem INSERT INTO PizzaHatZutaten ... - Pizza anlegen:

INSERT INTO Pizza ...

danach müste ich ja dann um mit INSERT INTO PizzaHatZutaten fortzufahren
erstmal die id herausfinden wo die Pizza da gerade beim INSERT erhalten hat
oder seh ich das falsch?

Wie mache ich das am sinnvollsten? So etwa:

$last_id = mysql_insert_id();

oder gäbe es dafür was anderes bzw. besseres?

Hieße dann letztendlich in meinem Script:

INSERT INTO Pizza ...

$idpizza = mysql_insert_id();


INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1),
(idpizza,zutat2), (idpizza, zutat3)

richtig oder hab ich da nun was falsch gemacht bei meiner Vorgehensweise?


>> Und wenn nicht alle Zutaten aktiviert wurden, dann ist hinterher ein Feld
>> leer oder? Geht natürlich nur wenns bei 3 Zutaten bliebe - soweit habe
>> ich das schon verstanden.
>
> Offensichtlich hast du das Design noch nicht ganz verstanden.
>
> Zutaten enthält alle möglichen Zutaten
> Pizzen enthält alle Pizzen
>
> PizzaHatZutaten enthält für jede Pizza in Pizzen 0 oder mehr Zutaten


nun habe ich aber langsam aber sicher das Design verstanden ... - stand da
wohl ein wenig auf der Leitung! Sorry das es solange gebraucht hat! :-)

Tausendfachen Dank an alle die mir bisher geholfen haben und es mir versucht
haben zu erklären bzw. es mir erklärten. Hat mir sehr weitergeholfen.

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 05.09.2005 14:52:13 von Stefan Rybacki

Sascha Blum wrote:
> Hallo,
>
> Stefan Rybacki wrote:
>
>
>
>>>Das Formular so:
>>>
>>> Salami

>>> Pilze

>>> Sardellen

>>>
>>Lieber:
>> Salami

>> Pilze

>>
>> Sardellen

>
>
> ok dann verwende ich da nun die id's ...
>
>
>
>
>>>$DatabasePointer=mysql_connect("mein_host", "user", "pw");
>>>mysql_select_db("meine_db", $DatabasePointer);
>>>
>>>//hier müste man wohl erstmal Variablen tauschen?
>>>
>>>$zutat1=$_REQUEST['zutat[0]'];
>>>$zutat2=$_REQUEST['zutat[1]'];
>>>$zutat3=$_REQUEST['zutat[2]'];
>>>
>>>$SQL = "INSERT INTO zutaten (idpizza, zutat1, zutat2, zutat3) VALUES ('',
>>>$zutat1, $zutat2, $zutat3);
>>>mysql_query($SQL, $DatabasePointer);
>>>
>>
>>Nein.
>>
>>1. du fügst hier nur in PizzaHatZutaten ein
>>
>>INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1),
>>(idpizza,zutat2), (idpizza, zutat3)
>>
>>(Offensichtlich mußt du vorher noch ne Pizza anlegen, damit du ein ID der
>>Pizza hast)
>
>
> OK hieße dann vor dem INSERT INTO PizzaHatZutaten ... - Pizza anlegen:
>
> INSERT INTO Pizza ...

Genau

>
> danach müste ich ja dann um mit INSERT INTO PizzaHatZutaten fortzufahren
> erstmal die id herausfinden wo die Pizza da gerade beim INSERT erhalten hat
> oder seh ich das falsch?
>
> Wie mache ich das am sinnvollsten? So etwa:
>
> $last_id = mysql_insert_id();
>

Jup, denk dran die ID in Pizza auf AUTO_INCREMENT zu haben.

> oder gäbe es dafür was anderes bzw. besseres?
>
> Hieße dann letztendlich in meinem Script:
>
> INSERT INTO Pizza ...
>
> $idpizza = mysql_insert_id();
>

jup

>
> INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1),
> (idpizza,zutat2), (idpizza, zutat3)
>

jup mit idpizza=$idpizza usw. in der VALUES Klausel

> richtig oder hab ich da nun was falsch gemacht bei meiner Vorgehensweise?
>

Sieht gut aus.

>
>
>>>Und wenn nicht alle Zutaten aktiviert wurden, dann ist hinterher ein Feld
>>>leer oder? Geht natürlich nur wenns bei 3 Zutaten bliebe - soweit habe
>>>ich das schon verstanden.
>>
>>Offensichtlich hast du das Design noch nicht ganz verstanden.
>>
>>Zutaten enthält alle möglichen Zutaten
>>Pizzen enthält alle Pizzen
>>
>>PizzaHatZutaten enthält für jede Pizza in Pizzen 0 oder mehr Zutaten
>
>
>
> nun habe ich aber langsam aber sicher das Design verstanden ... - stand da
> wohl ein wenig auf der Leitung! Sorry das es solange gebraucht hat! :-)
>

Besser spät als nie. ;)

> Tausendfachen Dank an alle die mir bisher geholfen haben und es mir versucht
> haben zu erklären bzw. es mir erklärten. Hat mir sehr weitergeholfen.
>


Bis denn dann
Stefan

> Viele Grüße
>
> Sascha
>
>

Re: Nochmal Checkboxen-Formular & MySQL

am 05.09.2005 15:10:05 von Sascha Blum

Hallo,

Stefan Rybacki wrote:

[...]


>> OK hieße dann vor dem INSERT INTO PizzaHatZutaten ... - Pizza anlegen:
>>
>> INSERT INTO Pizza ...
>
> Genau
>
>>
>> danach müste ich ja dann um mit INSERT INTO PizzaHatZutaten fortzufahren
>> erstmal die id herausfinden wo die Pizza da gerade beim INSERT erhalten
>> hat oder seh ich das falsch?
>>
>> Wie mache ich das am sinnvollsten? So etwa:
>>
>> $last_id = mysql_insert_id();
>>
>
> Jup, denk dran die ID in Pizza auf AUTO_INCREMENT zu haben.
>
>> oder gäbe es dafür was anderes bzw. besseres?
>>
>> Hieße dann letztendlich in meinem Script:
>>
>> INSERT INTO Pizza ...
>>
>> $idpizza = mysql_insert_id();
>>
>
> jup
>
>>
>> INSERT INTO PizzaHatZutaten (idpizza, idzutat) VALUES (idpizza, zutat1),
>> (idpizza,zutat2), (idpizza, zutat3)
>>
>
> jup mit idpizza=$idpizza usw. in der VALUES Klausel

wenn ich

$idpizza = mysql_insert_id();

vor dem INSERT INTO PizzaHatZutaten da definiere sozusagen, dann könnte
nachfolgendes dann so aussehen oder?:

INSERT INTO PizzaHatZutaten ($idpizza, idzutat) VALUES ($idpizza, zutat1),
($idpizza,zutat2), ($idpizza, zutat3)

oder würde das so falsch sein?

Und eines würde mich auch noch interessieren das hinter dem VALUES da. Also
wenn nur 1 Wert in der Checkbox aktiviert würde, dann wird beim Insert nur
($idpizza, zutat1) dann vom Script verwendet und nur 1 Datensatz wird
eingetragen oder würden dann noch 2 leere Datensätze eingetragen?

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 05.09.2005 15:41:35 von Stefan Rybacki

Sascha Blum wrote:
> Hallo,
> ...
>
> wenn ich
>
> $idpizza = mysql_insert_id();
>
> vor dem INSERT INTO PizzaHatZutaten da definiere sozusagen, dann könnte
> nachfolgendes dann so aussehen oder?:
>
> INSERT INTO PizzaHatZutaten ($idpizza, idzutat) VALUES ($idpizza, zutat1),
> ($idpizza,zutat2), ($idpizza, zutat3)

INSERT INTO PizzaHatZutaten (_idpizza_, idzutat) VALUES ($idpizza, $zutat1),
($idpizza,$zutat2), ($idpizza, $zutat3)

>
> oder würde das so falsch sein?

fast richtig, siehe die Änderungen

>
> Und eines würde mich auch noch interessieren das hinter dem VALUES da. Also
> wenn nur 1 Wert in der Checkbox aktiviert würde, dann wird beim Insert nur
> ($idpizza, zutat1) dann vom Script verwendet und nur 1 Datensatz wird
> eingetragen oder würden dann noch 2 leere Datensätze eingetragen?

leere Einträge bzw. du bekommst Fehlermeldungen

dann mach lieber ne Schleife


....
$idpizza=mysql_insert_id();

foreach ($_REQUEST['zutat'] as $zutat) {
$sql="INSERT DELAYED INTO PizzaHatZutaten (idpizza, idzutat) VALUES ($idpizza,$zutat)";

//sende query hier
...
}

Bis denn dann
Stefan

>
> Viele Grüße
>
> Sascha
>
>
>

Re: Nochmal Checkboxen-Formular & MySQL

am 06.09.2005 11:17:42 von Sascha Blum

Hallo,

Stefan Rybacki wrote:

>> Und eines würde mich auch noch interessieren das hinter dem VALUES da.
>> Also wenn nur 1 Wert in der Checkbox aktiviert würde, dann wird beim
>> Insert nur ($idpizza, zutat1) dann vom Script verwendet und nur 1
>> Datensatz wird eingetragen oder würden dann noch 2 leere Datensätze
>> eingetragen?
>
> leere Einträge bzw. du bekommst Fehlermeldungen
>
> dann mach lieber ne Schleife
>
>
> ...
> $idpizza=mysql_insert_id();
>
> foreach ($_REQUEST['zutat'] as $zutat) {
> $sql="INSERT DELAYED INTO PizzaHatZutaten (idpizza, idzutat) VALUES
> ($idpizza,$zutat)";
>
> //sende query hier
> ...
> }


irgendwas habe ich wohl bei meinem Script falsch gemacht ... :-(

Der erste Teil funktioniert, aber der zweite mit den Zutaten nicht.

Bekomme folgende Fehlermeldung:

Warning: Invalid argument supplied for foreach()
in /home/sascha/public_html/projekte/eintrag-einfuegen.php on line 18


Mein Script was die DB-Übertragung da angeht sieht derzeit so aus:


$DatabasePointer=mysql_connect("mein_host", "user", "db");
mysql_select_db("sascha", $DatabasePointer);

$SQL = "INSERT INTO pizza (pizzanr, bezeichnung, rezept) VALUES ('', '"
$_REQUEST['bezeichnung']."', '".$_REQUEST['rezept']."')";
mysql_query($SQL, $DatabasePointer);



$artikel_id=mysql_insert_id();

foreach ($_REQUEST['artikel_id'] as $artikel_id) {
$sql="INSERT DELAYED INTO pizzahatzutat (artikel_id, zutat_id)
VALUES ($artikel_id, $zutat_id)";

mysql_query($sql, $DatabasePointer);

}


also wie gesagt das mit der Pizza-Tabelle klappt noch wunderbar und die
Daten werden auch da reingeschrieben, aber mit der anderen Tabelle klappt
es nicht. Was habe ich denn da falsch gemacht?

Besten Dank vorab.

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 06.09.2005 12:09:45 von Stefan Rybacki

Sascha Blum wrote:
>...
>
> irgendwas habe ich wohl bei meinem Script falsch gemacht ... :-(
>
> Der erste Teil funktioniert, aber der zweite mit den Zutaten nicht.
>
> Bekomme folgende Fehlermeldung:
>
> Warning: Invalid argument supplied for foreach()
> in /home/sascha/public_html/projekte/eintrag-einfuegen.php on line 18
>

Lies die Fehlermeldung genau. Die hat nichts mit der Datenbank zu tun. Vielleicht hast du
meinen Code einfach so übernommen?

$_REQUEST['artikel_id'] scheint bei dir kein Array zu sein.
Prüfe dies vorher (siehe unten). Was sagt dir print_r($_REQUEST['artikel_id'])?
Hoffe deine Checkboxen haben als Namen artikel_id[].

>
> Mein Script was die DB-Übertragung da angeht sieht derzeit so aus:
>
>
> $DatabasePointer=mysql_connect("mein_host", "user", "db");
> mysql_select_db("sascha", $DatabasePointer);
>
> $SQL = "INSERT INTO pizza (pizzanr, bezeichnung, rezept) VALUES ('', '"
> $_REQUEST['bezeichnung']."', '".$_REQUEST['rezept']."')";
> mysql_query($SQL, $DatabasePointer);
>

prüfe $_REQUEST['rezept'] usw. vorher bitte auf Korrektheit und escape die Werte auch
gleich noch um z.B. Fehlermeldungen und oder SQL Injection zu vermeiden.

z.B. if (!isset($_REQUEST['rezept']) { print("Kein Rezept");exit();}
für das escapen schau dir mysql_real_escape_string an.

>
>
> $artikel_id=mysql_insert_id();
>
> foreach ($_REQUEST['artikel_id'] as $artikel_id) {
> $sql="INSERT DELAYED INTO pizzahatzutat (artikel_id, zutat_id)
> VALUES ($artikel_id, $zutat_id)";
>
> mysql_query($sql, $DatabasePointer);
>
> }
>
>
> also wie gesagt das mit der Pizza-Tabelle klappt noch wunderbar und die
> Daten werden auch da reingeschrieben, aber mit der anderen Tabelle klappt
> es nicht. Was habe ich denn da falsch gemacht?

siehe oben.

>
> Besten Dank vorab.
>

Bis denn dann
Stefan

> Viele Grüße
>
> Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 06.09.2005 12:39:48 von Sascha Blum

Hallo,

Stefan Rybacki wrote:

> Sascha Blum wrote:
>>...
>>
>> irgendwas habe ich wohl bei meinem Script falsch gemacht ... :-(
>>
>> Der erste Teil funktioniert, aber der zweite mit den Zutaten nicht.
>>
>> Bekomme folgende Fehlermeldung:
>>
>> Warning: Invalid argument supplied for foreach()
>> in /home/sascha/public_html/projekte/eintrag-einfuegen.php on line 18
>>
>
> Lies die Fehlermeldung genau. Die hat nichts mit der Datenbank zu tun.
> Vielleicht hast du meinen Code einfach so übernommen?
>
> $_REQUEST['artikel_id'] scheint bei dir kein Array zu sein.
> Prüfe dies vorher (siehe unten). Was sagt dir
> print_r($_REQUEST['artikel_id'])? Hoffe deine Checkboxen haben als Namen
> artikel_id[].

ahh das war wohl der entscheidende Hinweis ... - da kam vor lauter Variabeln
etwas durcheinander ...

.... nun scheint es zu funktionieren wie gewünscht! Tausendfachen Dank
nochmals ...

Jetzt muss ich nur noch ein Script zum Auslesen basteln ... :-)

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 06.09.2005 15:07:24 von Sascha Blum

Hallo,

ich bin jetzt gerade dabei das Ausgabe-Script zu schreiben ...

.... so habe aber ein kleines Problem. Mache ich ein mysql_query wo ich die
Pizza-Tabelle selcetiere, und diese dann in einer while-Schleife (wie in
diesem Beispiel dort: http://tut.php-q.net/mysql-select-php.html) dann
bekomme ich ordnungsgemäss alle eingetragenen Pizzen ausgegeben - soweit
sogut. Wenn ich ein mysyl_query mache wo ich die 3 besagten Tabellen
verknüfe und das per while ausgebe, bekomme ich alle Zutaten unter einander
ausgegeben - soweit sogut ...

Aber wie stelle ich das an, das das in etwa so ausgegeben wird?:

Pizza1

Rezept

Zutat1
Zutat2
Zutat3 (je nach dem wieviel Zutaten eben in der Tabelle drin sind)

-------------------------------------------------

Pizza2

Rezept

Zutat1
Zutat2
Zutat3 (je nach dem wieviel Zutaten eben in der Tabelle drin sind)

--------------------------------------------------

usw.

Habe schon wie verrückt herum experimentiert und komme einfach auf keinen
gemeinsamen Nenner. Auch google hab ich schon versucht zu Befragen um an
ein Beispiel dran zu kommen, aber irgendwie finde ich da nicht so das was
ich suche ... - vielleicht hab ich auch die falschen Suchbegriffe verwendet
oder so.

Ich schätze aber mal ich muss irgendwie 2 mysql_querys machen, einmal für
die Pizzen schätze ich mal und eine wo die Zutaten dazu drin aufgelistet
sind. Aber wie kann ich das dann verbinden bzw. gewünschtes Ergebnis da
erzielen?

Habe auch sowas schon versucht, aber das ist wohl etwas falsch ...

while($row = mysql_fetch_assoc($ResultPointer); $row2 =
mysql_fetch_assoc($ResultPointer2)) {...}

Parse error: parse error, unexpected ';'

Besten Dank vorab.

Viele Grüße

Sascha

Re: Nochmal Checkboxen-Formular & MySQL

am 06.09.2005 22:53:23 von Stefan Rybacki

Sascha Blum wrote:
> Hallo,
>
> ...
> Ich schätze aber mal ich muss irgendwie 2 mysql_querys machen, einmal für
> die Pizzen schätze ich mal und eine wo die Zutaten dazu drin aufgelistet
> sind. Aber wie kann ich das dann verbinden bzw. gewünschtes Ergebnis da
> erzielen?

Das ist eine Möglichkeit.

Ein andere wäre, deine Anfrage mit verknüpften Tabellen benutzen, nach Pizza sortieren und
dann in der Schleife die Pizza einmal ausgeben und dann das Rezept und dann die Zutaten
solange bis sich die Pizza ändert.

z.B.

$oldpizzaid=-1;
while ($row=mysql_fetch_assoc($ResultPointer)) {
if ($row['pizzaid']!=$oldpizzaid) {
print("\n");
print($row['pizzaname']."\n");
print($row['rezept']."\n");
print("Zutaten:\n");
$oldpizzaid=$row['pizzaid'];
}

//print out ingredients
print($row['zutat']."\n");
}

>
> Habe auch sowas schon versucht, aber das ist wohl etwas falsch ...
>
> while($row = mysql_fetch_assoc($ResultPointer); $row2 =
> mysql_fetch_assoc($ResultPointer2)) {...}
>
> Parse error: parse error, unexpected ';'

Versuche die Fehlermeldungen auch zu verstehen. Wo ist ein ; und warum könnte es dort
falsch sein ;)

>
> Besten Dank vorab.

Bis denn dann
Stefan

>
> Viele Grüße
>
> Sascha