Mehrere Bedingungen bei Datenbankabfrage, die in einem array stehen

  • Hallo

    Ich möchte eine Datenbankabfrage durchführen, die einer von mehreren in einem array festegelegten Bedingungen genügen soll.
    Das eigentliche Problem hierbei ist, dass der array ganz unterschiedlich lang sein kann, da er auch dynamisch erzeugt wird.
    Das heißt etwas in der Form scheidet aus, da ich nicht weiß wie lang der array ist.

    PHP
    $ads = $mysql->execute('select * from ads where category = ? or category = ? or category = ?', $catids));

    Wenn ich folgendes versuche, bekomme ich immer nur 1 Ergebnis:

    PHP
    foreach ($subcategories as $subcat) {
                    $ads = $mysql->execute('select * from ads where category = ?', array($subcat['id']));
                }

    Ist eigentlich auch logisch, da ich nur auf das erste Ergebnis zugreifen kann.

    Dann habe ich folgendes versucht, allerdings auch ohne Erfolg.

    Es kommt dieser Fehler, oder es wird nur eine leere Seite angezeigt

    Zitat

    Notice: Undefined offset: 1 ...

    Was mache ich falsch?
    Was ist die beste Möglichkeit das Problem zu lösen?

    Gruß NN

  • Aua, da wird ja 'zig mal auf die DB gefeuert!


    Warum soll ich nicht SELECT * schreiben?
    http://php.faq-page.net/q-sql-select.html

  • ok, es werden aber tatsächlich alle Spalten benötigt!


    Du hast die FAQ nicht verstanden.


    Was willst du denn mit deinem Code sagen? Soll ich die query besser dynamisch zusammensetzen?


    Nein, ich will damit sagen, dass es prima ist, den DB-Server in einen Toaster umzuwandeln und ihn mit völlig unnötigen Abfragen zu bombadieren. Und wenn du mal mein Script ausprobiert hättest, wäre dir aufgefallen, dass es bei dem Script wurscht ist, wieviele Daten in dem Array stehen und das die Abfrage dynamisch zusammengebaut wird, und das mit sehr einfachen Mitteln.