sql-verschachtelung in php
tom
- php
0 Andreas Korthaus0 Lude0 Lude
hallo,
ich habe ein problem.
und zwar möchte ich eine verschachtelte sql-anfrage mit php realisieren. die abfrage sieht bei mir zz so aus:
$try= mysql_query("SELECT aid from BILDER where pid='$actpid' in (SELECT * from BILDER where aid='$actaid')");
$actaid1 = mysql_fetch_array($try);
es kommt dann immer eine fehlermeldung:
...mysql_fetch_array($try); supplied argument is not a valid MySQL result resource ...
was mache ich falsch? ich komm einfach nicht drauf.
danke im voraus.
mfg, tom
Hi!
$try= mysql_query("SELECT aid from BILDER where pid='$actpid' in (SELECT * from BILDER where aid='$actaid')");
Diese Abfrage funktioniert meines Wissens nichtmal mit MySQL 4.1. Lass Dir nach mysql_query() mal mysql_error() ausgeben um von der DB zu erfahren was das Problem ist. Der von Dir genannte Fehler ist eine Folge dieses Fehlers.
Du solltest Dir ansehen wie SELECT-Statements in MySQL aussehen:
http://www.mysql.com/doc/de/SELECT.html
http://www.mysql.com/doc/de/ANSI_diff_Sub-selects.html
evtl. auch die englischen Varianten die vielleicht aktueller sind.
Nur wieso um Himmelswillen verwendest Du in Deinem Statement subselects? Ließe sich das nicht einfach mit 2 durch AND verbundene WHERE-Bedingungen lösen?
Grüße
Andreas
Hi,
$try= mysql_query("SELECT aid from BILDER where pid='$actpid' in (SELECT * from BILDER where aid='$actaid')");
ich wuerde es mal mit 'SELECT aid from BILDER where pid='$actpid' in (SELECT [id] from BILDER where aid='$actaid')'
^
|
versuchen; sonst ist es nicht logisch. - Ausserdem 'SELECT' kleinschreiben und die Where-Klausel in Klammern setzen. :-)
Gruss,
Lude
Hi,
'SELECT aid from BILDER where pid in (SELECT [id] from BILDER where aid='$actaid')' ist noch besser. :-)
Gruss,
Lude