kostenloser Webspace werbefrei: lima-city


Bedingung von SQL WHERE später bei fetch_object ergänzen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    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

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!