Mailinglisten-Archive |
Andreas Korinek schrieb > "select * from artikel where kat_id like $kat_id" SELECT * FROM artikel WHERE kat_id LIKE '%$kat_id%' Dein SQL-Statement heißt übersetzt: "Gebe mir alle Felder von Datensätzen aus, bei denen kat_id exakt dem Inhalt der Variable $kat_id entspricht." Du willst aber eigentlich sagen: "Gebe mir alle Felder von Datensätzen aus, bei denen das Feld kat_id an beliebiger Stelle den Inhalt der Variablen $kat_id enhält.". Deshalb mußt Du die % als Platzhalter einsetzen. Problematisch bei Deiner Datenbank wird es dann, wenn $kat_id dann z.B. 2 ist. Es werden dann alle Felder ausgegeben, bei denen irgendwo eine 2 vorkommt, also z.B. auch bei 231 oder 12. Abhilfe schafft ein komplizierteres SQL-Statement, oder eventuell ein Überdenken Deiner Datenbankstruktur. z.B.: SELECT * FROM artikel WHERE kat_id LIKE '$kat_id' OR kat_id LIKE '$kat_id,%' OR kat_id LIKE '%,$kat_id' OR kat_id LIKE '%,$kat_id,%' Guido Haeger
php::bar PHP Wiki - Listenarchive