Vinzenz Mai: mysql_query, der 1. klappt, der 2. nicht.

Beitrag lesen

Hallo,

folgendes Problem: Ich starte 2 mysql_query-Abfragen, die 1. ($result) wird mir korrekt angezeigt, die 2. ($result2) wird mir nicht angezeigt, also es kommt auch kein ressource ID# dabei heraus. Alle Tabellenfelder sind korrekt, die habe ich x-fach nachgelesen.

Sehe ich vor lauter Bäume den Wald nicht mehr?

Du möchtest statt PHP einen Join verwenden.

Lektüretipps:
Einführung in Joins
Fortgeschrittene Jointechniken

Schließlich baust Du einen simplen INNER JOIN aufwendig mit PHP und teuren Abfragen in einer Schleife nach. Das ist *keine* gute Idee - und fehlerträchtig, wie Du siehst :-)

Weiterhin ist es auch nicht gerade ressourcenschonend, sich die Inhalte aller Spalten einer Tabelle zurückgeben zu lassen, wenn man an einer einzigen interessiert ist.

$sql = "SELECT * FROM naviuser WHERE p\_id = '$projektid' && u\_id = '$_SESSION[userid]'";
$result = mysql_query ($sql);
while ($row=mysql_fetch_array($result))
  {
     $navi2 = $row['navi_id'];
     $sgl2 = "SELECT * FROM navigation WHERE naviid = '$navi2'";
     $result2 = mysql_query ($sql2);
     $row2=mysql_fetch_array($result2);
     $navtext = $row2['text'];
  }

Weiterhin verzichtest Du auf jegliche Kontextgemäße Behandlung und verläßt Dich somit entweder auf die unsäglichen Magic Quotes oder bist komplett für SQL-Injektion offen und gelegentlich kann es auch einfach nur zu einem Fehler kommen ...

  
SELECT  
    <spalten aus naviuser, die Du benötigst>  
FROM  
    naviuser  
INNER JOIN  
    navigation  
ON  
    naviuser.navi_id = navigation.naviid  -- Du bist inkonsequent.  
WHERE  
    naviuser.p_id = <projektid>  
AND  
    naviuser.u_id = <Session-Wert>  

Die Werte aus Deinen PHP-Variablen solltest Du mit mysql_real_escape_string behandeln, da Du noch die veralteten mysql_*-Funktionen nutzt. Zum Zusammenbauen Deines Statements führt die Verwendung von sprintf() zu lesbarerem Code.

Näheres findest Du selbstverständlich massenhaft im Archiv, zum Beispiel in diesem Archivbeitrag von dedlfix mit vielen netten Links, die ich Dir sehr ans Herz lege.

Freundliche Grüße

Vinzenz