Bedingung von SQL WHERE später bei fetch_object ergänzen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abrufen
angabe
anweisung
array
ausbildung
auslese
code
gespeicherten optionen
grad
grundausbildung
halbwissen
holen
klause
kleines problem
level
session
speichern
tabelle
zeile
zusatzausbildung
-
Hallo,
ich habe leider ein kleines Problem bei einer Datenbankabfrage. Ich hab schon viel hin und her versucht und dazu gegooglet, allerdings hab‘ ich nichts gefunden was geholfen hat…
Diese Tabelle liegt vor:
id key wert wert_zahl name
1 abc123 new 1 option_1
2 abc321 wen option_2
Wobei „wert“ und „wert_zahl“ nur optional angegeben werden müssen.
Nun möchte ich gerne überfolgende SQL-Anweisung alle gespeicherten Optionen für den key holen:
SELECT * FROM configs WHERE key=‘$_SESSION[‚key‘]‘
Und dann mit z.B. den Inhalt von „wert_zahl“ wissen und in einer Session speichern.
Mein Code dazu sieht folgendermaßen aus:
if($stmt_con = $db->query($sql_con)){ $result_con = $stmt_con->fetch_object(); $stmt_con->close(); $_SESSION[‘option_1'] = $result_con->wert_zahl; $_SESSION[‘option_2’] = $result_con->wert; }
Allerdings kann mir dieser Code ja gar nicht den Wert von „wert_zahl“ unter der Bedingung von key und name holen. Ich möchte ungerne in die WHERE-Klause „name“ mit hineinschreiben, da ich alle Einstellungen auf einmal abrufen und dann in einer Session speichern möchte.
MfG cpk2011
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
ich weiß nicht genau, ob ich es nun richtig verstanden habe, aber du hast also mehrere Zeilen mit dem selben Wert in "key" und willst die ganzen Daten, die in der Tabelle vorhanden sind auslesen!?
Wenn ich, mit meinem Halbwissen, dich so richtig verstanden habe, hatte ich das selbe Problem. Ich wollte mehrere Zeilen, die einer Person zugewiesen sind, auslesen. Dabei waren Ausbildungsbereiche (edu_id) unterschiedlich und die Level-Angabe (grade) optional. Ich habe es mit GROUP_CONCAT lösen können:
SELECT t_person.id_pers, GROUP_CONCAT(DISTINCT st_edupers.edu_id SEPARATOR '#%') as eduids, GROUP_CONCAT(st_edupers.grade SEPARATOR '#%') as edugrades, FROM t_person LEFT JOIN st_edupers ON t_person.id_pers = st_edupers.pers_id WHERE t_person.id_pers = ?
Damit habe ich anhand der PersonenID Strings der Felder erhalten (z. B. edugrades = "Grundausbildung#%Zusatzausbildung").
Dann konnte ich das mit explode zu einem Array machen und schließlich die beiden Arrays kombineren und so ein Array erstellen, dass die ID der Ausbildung als Key und den Level als Wert beinhaltet.
Hilft dir das weiter oder liege ich total daneben? ^^"
Grüße
things -
Jo wunderbar, hat geklappt.
Hab einfach GROUP_CONCAT() drauf gehauen und dann wie du schon meintest mit dem explode in Array's gepackt.
Vielen Dank
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage