ich versuche gerade ein Men� aus einer TabelleB heraus zu erstellen.
Dabei gibt es in der Tabelle auch ein Bedingungsfeld in dem z.B.
drinsteht: $_SESSION["SPEZIAL"] == "Y"
(Bei allen ohne Bedingung steht einfach nur TRUE drin)
Beim Aufbeu des Men�s werte ich diese Bedingung aus und daraufhin soll
der men�punkt dann eben erscheinen oder auch nicht:
while ($satz = mysql_fetch_array($xr)) {
if ($satz["bedingung"]) {
echo $satz["element"]; //gek�rzt
}
}
Problem nur: das Element wird immer ausgegeben, auch wenn die Bedingung
nicht erf�llt ist.
Was mach ich da falsch?
Danke
Fabian
> while ($satz = mysql_fetch_array($xr)) {
> if ($satz["bedingung"]) {
> echo $satz["element"]; //gekürzt
> }
> }
>
> Problem nur: das Element wird immer ausgegeben, auch wenn die Bedingung
> nicht erfüllt ist.
>
> Was mach ich da falsch?
Lass dir $satz mal mit print_r() ausgeben - dann merkst du, dass du
eigentlich mysql_fetch_assoc() benutzen wolltest.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
------------------------------------------------------------------
> while ($satz = mysql_fetch_array($xr)) {
> if ($satz["bedingung"]) {
> echo $satz["element"]; //gekürzt
> }
>
> }
>
> Problem nur: das Element wird immer ausgegeben, auch wenn die Bedingung
> nicht erfüllt ist.
>
> Was mach ich da falsch?
Hallo Fabian,
was steht denn exakt im Datenbank-Feld 'bedingung' drin ?
Helmut
> Hallo Fabian,
> was steht denn exakt im Datenbank-Feld 'bedingung' drin ?
Beispiele:
TRUE
$_SESSION["SPEZIAL"] == "Y"
$_SESSION["RECHT"] > 5
Mir ist inziwschen klar dass das so garnicht gehen kann, weil ein String
als IF Abfrage ja keinen Sinn ergibt. Jetzt bin am T�fteln wie das mit
EVAL auszuwerten ist.
Danke
Fabian
Ich hab's rausbekommen - kaum sitzt man eine Stunde dran ...
Erst die Bedingung per eval auswerten und dann dieses Ergebnis
verwenden, also so:
while ($satz = mysql_fetch_array($xr)) {
$eval_code = '$mussrein = '.$satz["bedingung"].';';
eval($eval_code);
if ($mussrein) {
echo $satz["element"]; //gek�rzt
}
}
Fabian
> echo $satz["element"]; //gekürzt
> }
> }
*HändeÜberDemKopfZusammenschlag* Um Gottes Willen nein! :-)
Das was Du da tust ist fürchterlich. Allein die Tatsache das bei Dir PHP-
Code existiert der als Zeichenkette in PHP definiert ist zeigt, das Du
irgendwo im Aufbau Deines Projekts einen sehr gewaltigen Designschnitzer
hast. Ich hab schon 1000e PHP anwendungen entwickelt. Eval war nie nötig.
Übrigens für eval gilt "eval == evil" nicht umsonst!
Wie kommt es dazu das irgendwo PHP-Code als Zeichenkette definierst? Das
must Du unbedingt abstellen!
MfG, Ulf
>
> while ($satz = mysql_fetch_array($xr)) {
sollte es nicht hei�en
while ($satz == mysql_fetch_array($xr)) {
?
Gru�
Irmgard
> Fabian Knauf schrieb:
>
>> while ($satz = mysql_fetch_array($xr)) {
>
> sollte es nicht hei�en
> while ($satz == mysql_fetch_array($xr)) {
Wie kommst Du denn darauf?
mysql_fetch_array() liefert einen Datensatz, sofern einer vorhanden ist,
sonst false. Dieser R�ckgabewert soll $satz zugewiesen werden (alles
andere w�re ziemlich sinnfrei). Das Ganze passiert, so lange ein
Datensatz geliefert wird.
Gru�. Claus
Und was soll ein Vergleich zwischen einem Funktionsr�ckgabewert und
einer nicht definierten Variable an der Stelle bringen...?
Die Zuweisung ist schon richtig. Rest haben die Anderen ja schon erl�utert.
--
Mit freundlichen Gr��en,
Christoph Herrmann
Gru�
Irmgard