Fabian: mysql Abfrage mit inner join nimmt Argument nicht an

Hallo Forum,

ich habe mir eine MYSQL Abfrage unter PHP erstellt:

$sql    = "SELECT ordner_id, titel, beschreibung, datum, status FROM ordner INNER JOIN ordnerid_uid ON (ordner.ordner_id = ordnerid_uid.ordner_id) WHERE uid = '$UID' ORDER BY $sortierung"." LIMIT ".$Anfangsposition.",".$Zeilen_pro_Seite;

ohne ordner_id nach SELECT funktioniert es einwandfrei. Mit dem ordner_id erhalte ich die Antwort:

Warning: Supplied argument is not a valid MySQL result resource

Frage ich die ordner_id Spalte einzeln ab, erhalte ich auch keine Fehlermeldung.
Ich frage mich daher, ob ich überhaupt eine Spalte abfragen kann, welche mir als Argument für die Abfrage selbst, dient.

Wenn nein, wie muß ich es statt dessen machen?

Danke Gruß FAbian

  1. Schon mal mit Tabellenangabe im SELECT probiert?

    Scheint das selbe zu sein, isses aber nicht. Kann jetzt Dein Beispiel grad nicht testen, kenne aber folgendes:

    select * from mytable;  --> kein Problem - klar

    select spalte1, sp2, sp3, ... from mytable; --> kein Problem - logisch

    ABER, jetzt will ich (zum Testen in grafischer Oberfläche) die 18. Spalte als erste angezeigt haben, alle anderen auch, aber nicht alle 25 Spalten eingeben. Dann geht folgendes nicht:

    select spalte18, * from table; --> kaputt, weiß zwar die Fehler-meld jetzt nich, aber das geht nicht, dafür geht es aber so:

    select mytable.spalte18, mytable.* from mytable; --> klappt prima

    oder mit Table-Alias

    select a.spalte18, a.* from mytable a; --> geht auch;

    select spalte18, a,* from mytable a; --> müßte auch funzen;

    also teste vielleicht mal das:

    $sql    = "SELECT ordner.ordner_id, titel, beschreibung, datum, status FROM ordner INNER JOIN ordnerid_uid ON (ordner.ordner_id = ordnerid_uid.ordner_id) WHERE uid = '$UID' ORDER BY $sortierung"." LIMIT ".$Anfangsposition.",".$Zeilen_pro_Seite;

    1. DANKE Andreas,

      für deine ausführliche Antwort.

      Ich dachte wirklich die Abfragen wären identisch, ist es aber annscheinend nicht.

      Deine Lösung hat sofort funktioniert!!!

      Den ganzen Vormittag sitze ich bereits an diesem Problem und habe schon verschiedene Ersatzlösungen ausgetüftelt, die aber auch nicht so recht wollten.

      Super!!

      Grüße Fabian

  2. Hallo!

    $sql    = "SELECT ordner_id, titel, beschreibung, datum, status FROM ordner INNER JOIN ordnerid_uid ON (ordner.ordner_id = ordnerid_uid.ordner_id) WHERE uid = '$UID' ORDER BY $sortierung"." LIMIT ".$Anfangsposition.",".$Zeilen_pro_Seite;

    ohne ordner_id nach SELECT funktioniert es einwandfrei. Mit dem ordner_id erhalte ich die Antwort:
    Warning: Supplied argument is not a valid MySQL result resource

    Ich vermute schwer, dass dein Problem daher rührt, dass ein Feld 'ordner_id' sowohl in der Tabelle 'ordner' als auch in 'ordnerid_uid' vorkommt.

    Mit 'ordner.ordner_id' sollte es klappen.

    Gruß,

    kerki

    1. Danke Kerki,

      das war der Fehler, jetzt geht es...endlich...!

      Grüße Fabian