tom: sql-verschachtelung in php

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

  1. 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

  2. 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

    1. Hi,

      'SELECT aid from BILDER where pid in (SELECT [id] from BILDER where aid='$actaid')' ist noch besser.   :-)

      Gruss,
      Lude