Picupload

Ein letzter Formatierungsvorschlag...

wenn das nicht hilft, dann hast du irgendwo nen Fehler. Wo, dass musst du dann selbst rausfinden

Code:
$strSQL = "SELECT * FROM `pics` WHERE `cat_id` = '$cat_id' ";

und schau auf die richtigen Anführungszeichen!
 
das klapt nicht, weil a) keiner deine problemstellung richtig gelesen hat und wohl auch keiner der hier sich mitteilenden mit joins auskennt.

dein problem wird dadurch gelöst, indem du per link oder select-tag die kategorien eingelesen werden. diese kannst du dann per klick auswählen und neu absenden.

mit dem neuen absenden des einzigen formularinhalts einer cat_id läuft dann die db-anfrage per join.

die abfrage selbst muss dann so aussehen:
PHP:
$was = "SELECT * FROM Kategorie AS K, Bildtabelle AS B
                       WHERE K.id = B.cat_id AND K.id = '$daten_aus_formularfeld_select'";

Das AS K und AS B ist nichts weiter als das kürzen der Tabellennamen, damit man in der Bedingung WHERE nicht so viel schreiben muss. Das könnte man auch machen, wenn man den SELECT genauer oder kürzer halten will. Dann wählte man eben für die Tabellenfelder direkt:

SELECT K.id, K.name usw.., B.id, B.cat_id, usw.. FROM......

aber ich denke das prob ist schon gelöst ;)
 
@saila:
'wohl auch keiner der hier sich mitteilenden mit joins auskennt'...

1. Du verwendest den langsamsten Join den es gibt.
2. Du verwendest ANSI SQL 92 und nicht ANSI SQL 99, sonst würdest du einen Cross Join Vorschlagen.
3. Das Kreuz-/Kartesische Produkt ist nicht geeignet für solch einen Fall
-> Bitte überschätze deine Fähigkeiten nicht...

Wenn die Kategorien bestehen bleiben kannst du ruhig einen Inner Join anwenden, sonst halt einen Outer Join (Right oder Left)...

Beispiel:
PHP:
$qry = 'SELECT k.nur_benoetigte_felder, b.nur_benoetigte_felder
FROM bildtabelle AS b INNER JOIN kategorie AS k
ON k.id = b.cat_id
WHERE k.id = "$Kategorienid"';
 
Zurück