Beiträge von Sankt Peter im Thema „Hilfe zu Mysql“

    Ok ... ich werde es mal probieren - aber erst nachher... Danke für die Hilfe!!!


    Ist das für php so richtig:


    $db_top = $db->query("SELECT p.paarid FROM bb".$n."_kt_paare p LEFT JOIN bb".$n."_kt_usertipps u ON (p.paarid=u.paarid AND u.userid='".$zuser."') WHERE u.paarid is null");

    Super - also jetzt geht es schon mal - macht aber noch nicht das, was es soll...


    In einer Tabelle sollen für einen bestimmten User Kicktipps eingetragen werden, und zwar für alle Spiele, die er noch nicht getippt hat... Das funktioniert nicht - derzeit werden 0 Tipps eingetragen...


    Irgendeine Idee, warum diese Abfrage anscheinend inhaltlich noch etwas anderes tut, als die ursprüngliche? Das "IS NULL" stimmt doch nicht - oder?


    Also ich benötige irgendwie eine Abfrage die folgendes macht:


    - Schaue in der Tabelle KT_PAARE welche Spiele es gibt und prüfe dann in der Tabelle KT_USERTIPPS welche Spiele ein bestimmter Tipper davon schon getippt hat. Diese sollen nicht mit selektiert werden. Das Ergebnis sind also alle tippbaren Spiele, die dieser Spieler noch nicht getippt hat.


    Für diese wird dann im weiteren Quellcode ein Zufallstipp eingetragen.

    Ok, Syntax war wirklich noch falsch... Tausende von Klammern...


    Jetzt ist der Syntax Fehler weg aber der SQL Fehler wieder da (mit der neuen Abfrage):


    Schon klar...


    Also die alte Zeile sieht so aus:


    $db_top = $db->query("SELECT * FROM bb".$n."_kt_paare p WHERE p.paarid NOT IN (SELECT u.paarid FROM bb".$n."_kt_usertipps u WHERE p.paarid = u.paarid AND u.userid = '".$zuser."')");


    Und die neue Zeile dah dann so aus:


    $db_top = $db->query("SELECT * FROM bb".$n."_kt_paare p LEFT JOIN bb".$n."_kt_usertipps u ON p.paarid = u.paarid WHERE u.paarid is NULL AND u.userid = ".$zuser.")";


    Müsste doch richtig sein...


    Funktioniert auch nicht...



    Das bringt bei mir folgenden Fehler:

    Zitat

    Parse error: syntax error, unexpected T_STRING in /homepages/37/d247992905/htdocs/wbb2/kt_admin.php on line 1312

    Oh, Danke für den Link - der könnte auf den ersten Blick weiterhelfen - muß ich mir allerdings mal in Ruhe zu Gemüte führen...


    Ich kann mich noch erinnern, wie ich in der 11. Klasse Informatik gewählt hatte. Zwei Wochen später wurde in der Schule eingebrochen und die Computer geklaut... Als Ersatz haben wir dann Datenbanktheorie gemacht - man haben wir uns gefreut :(

    Zitat

    Original von unittype001


    Öhm, die Verwendung von p.paarid scheint hier falsch zu sein. Statt eines Subselects solltest Du vielleicht eher einen LeftJoin der beiden Tabellen machen und dann die WHERE-Klausel darauf anwenden..


    Probiers mal.


    Ja, irgendwie hängt er an dem "IN"...


    Leider sind meine SQL Zeiten geschätzte 10 und gefühlte 20 Jahre her. Eine normale Select Anweisung ist ja noch machbar aber diese verschachtelten Dinge ... mhhhh?!? Gibt es irgendjemanden, der so etwas aus dem Ärmel schütteln kann? *hoff*

    Irgendeiner eine Idee, warum folgende Zeile:


    Code
    $db_top = $db->query("SELECT * FROM bb".$n."_kt_paare p WHERE NOT p.paarid IN (SELECT u.paarid FROM bb".$n."_kt_usertipps u WHERE p.paarid = u.paarid AND u.userid = ".$zuser.")");


    einen Mysql Fehler 1064 auswirft?