Superheld: MYSQL Abfrage

Hallo zusammen,

ich hänge gerade und brauche mal ein wenig hilfe.
Ich hole Daten (id) aus einer DB_1 und sammel diese:

//Die Einträge aus DB_1 sammeln  
while ($mz=mysql_fetch_object($result_1))  
{  
$ids = array(" AND Hotel_ID = '$mz->id'");  
foreach($ids as $id)  
{  
echo $id; //gibt "AND ID = '22' AND ID = '33'"  
}  
}

Dieses Ergebnis möchte ich nun an eine weitere MYSQL-Abfrage anhängen:

$query ="select * from datenbank where status='1' $id";

wenn ich den query nun mit echo ausgebe wird nur die letzte id genutzt:

select * from datenbank where status='1' AND ID = '33'

die Abfrage soll aber so aussehen:

select * from datenbank where (status='1' AND (ID = '22') or (ID = '33'))

Danke für eure Hilfe

Superheld ;-)

  1. Mahlzeit Superheld,

    foreach($ids as $id)
    {
    echo $id; //gibt "AND ID = '22' AND ID = '33'"

    Logisch. Allerdings ist auch logisch, dass das nicht funktionieren kann, da kein Datensatz in der Spalte ID gleichzeitig mehrere Werte haben kann.

    Dieses Ergebnis möchte ich nun an eine weitere MYSQL-Abfrage anhängen:

    Warum das? Wieso JOINst Du nicht einfach die entsprechenden Tabellen dazu?

    $query ="select * from datenbank where status='1' $id";

    wenn ich den query nun mit echo ausgebe wird nur die letzte id genutzt:

    select * from datenbank where status='1' AND ID = '33'

    Auch das ist klar - es wird das genutzt, was in der Variablen $id enthalten ist. Wenn Du dort mehr erwartest, solltest Du vorher mehr hineinschreiben.

    die Abfrage soll aber so aussehen:

    [code lang=php]select * from datenbank where (status='1' AND (ID = '22') or (ID = '33'))

    Dann ändere Deinen Code entsprechend. Ich habe z.B. nirgendwo eine Stelle gefunden, wo Du "OR" in irgendeiner Form in irgendeinen String geschrieben hast - wie kannst Du dann erwarten, dass in der fertigen SQL-Abfrage dieses Wörtchen enthalten ist?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      das hat mir leider wenig geholfen:

        
      $query = "select * from DB_1 as id INNER JOIN DB_2 as id";  
      
      
      1. Neuer Versuch:

          
        $query = "select * FROM DB_1 WHERE DB_1.ID=DB_2.ID";  
        
        

        klappt aber leider auch nicht...

        1. Ich habs gelöst! ;-)

          Vielen Dank für den richtigen "Schubs"...

      2. Hi!

        das hat mir leider wenig geholfen:

        Das ist das Problem einer falschen Syntax: es hilft leider nicht!

        $query = "select * from DB_1 as id INNER JOIN DB_2 as id";

          
        Was sagt Dir denn Dein mySql-Server dazu?  
          
          
        off:PP  
          
          
        
        -- 
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)