Abfrage auf Auswahlfeld

flons23

Grünschnabel
Hallo!
Ich habe ein Auswahlfeld mit mehrern Auswahlmöglichkeiten, über das eine Select- Anweisung gesteuert werden soll. Ich möchte also die Datenbankabfrage über die Auswahlfelder erweitern.
Mein Code sieht so aus:
<select name="entschwef[]" size="5" multiple>
.
.
.
Weiter unten kommt dann folgendes:
if($v_entschwef !=""){
foreach($v_entschwef as $id_entschwef){

if($id_entschwef=="101"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=101";}
if($id_entschwef=="102"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=102";}
if($id_entschwef=="103"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=103";}
if($id_entschwef=="151"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=151";}
if($id_entschwef=="152"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=152";}
if($id_entschwef=="153"){$VSql.=" and MV.ID_VV_REE_ENTSCHW_IST=153";}
}
}
So, habe ich nun nur eines angewählt, stimmt die Abfrage, bei mehreren kommt entweder kein Ergebnis oder ein fehlerhaftes (nur höchste ID angewählt).
Die Ausgabe des Arrays liefert aber das richtige Ergebnis (echo.....).
dort werden alle gewählten auch angezeigt.
Vielen dank im Voraus.
Gruß Florian
 
Habe einen Fehler gefunden: Es muß natürlich, wenn mehr als 1 gewählt wurde, or heißen- nicht and

Nur, wie prüfe ich jetzt, ob im Array mehr als 1 drin steht?
Gruß Florian
 
ja was bringt es dir wenn du weist was genau in $_POST oder in $_GET drinnen steht? Hm vielleicht siehste ja wie der array aufgebnaut is und ob überhaupt alles richtig übergeben wird?
 
Guckst Du oben, da habe ich bereits geschrieben, daß das array richtig übergeben wird, bzw. der Inhalt. Folglich war Dein Post mehr als flüssig-> überflüssig.
Aber trotzdem: Danke.
Florian
 
Wie wärs wenn du guckst wann ich den ersten Post gepostet habe?
Und nebenbei wirst du var_dump() auch in Zukunft brauchen und der Post ist allein schon für den String != int hinweis gerechtfertigt.
 
Hallo!
Mittlerweile habe ich meien Code folgendermaßen geändert:
<select name="entschwef[]" size="5" multiple>
<option value="101">101: pipapo</option>
<option value="102">102: weißnich</option>
<option value="103">103: nochWatt</option>
</select>

$VSql="Select
xyz
from Tabelle
where
bedingung1
,bedingung1
.
.
.


Unten dann:
if($v_entschwef !="")
{
$VSql.=" and id=000";
if($v_entschwef=="152"){$VSql.=" or ID=152"; } //Hier habe ich es mit und ohne geschweifte Klammern probiert.
}

Ergebnis ist, wenn ich nichts auswähle(die If-Anweisung also false ist), läuft es alles richtig.
Wenn ich eins auswähle, lommt kein Ergebnis (also als wenn !="").
Es wird also nicht richtig geprüft,was in $v_entschwef steht. So zumindest meine Vermutung.
Aber syntaktisch müsste das doch richtig sein?!
Danke und Gruß
Florian
 
Zurück