Probleme mit Query

tobbimann

Mitglied
Guten Abend!

Folgender Code:

PHP:
$year=$_GET[jahr];
$there=$_GET[vorhanden];
$discs=$_GET[cds];
$quali=$_GET[qualitaet];

$sql = 'SELECT * FROM `filmdb` WHERE Jahr="$year" AND vorhanden="$there"
 AND CDs="$discs" AND Qualität="$quali" ORDER BY `Film` ASC;';


Folgendes Problem:

Das Script will mir einfach nichts ausgeben! Ich habe schon alle möglichen Schreibweisen durchprobiert, aber keine funktioniert.
Ziel ist es, durch anhängen verschiedener Parameter eine gezielte DB-Abfrage zu erstellen. Sollte eine Variable nicht gesetzt sein, sollte sie zudem im Query auch noch ignoriert werden.

Ich bin für jeden Tipp dankbar
 
Zuletzt bearbeitet von einem Moderator:
schon mal geschaut ob in den werten überhaupt was drinne steht
vielleicht liegt da schon der erste fehler!
also mit echo mal testen!

SChon mal deinen sql befehl mit phpmyadmin auf syntax kontrolliert

'SELECT * FROM `filmdb` WHERE Jahr="$year" AND vorhanden="$there"
AND CDs="$discs" AND Qualität="$quali" ORDER BY `Film` ASC;';

erstemal fehler die punkte bzw. kommas echo "hallo".$variable."hallo"; das gleiche gilt für die sql anweisungen!

Dann fehlen die einfachen hochkommas ' bei den string werten.

dann kannst Du deinen sql befehl nicht mit ' starten und zwischendrinne mit " " unterbrechen! Entweder das eine oder das andere
PHP:
$sql = "SELECT * FROM `filmdb` WHERE Jahr='".$year."' AND vorhanden='".$there."' 
AND CDs='".$discs."' AND Qualität='".$quali."' ORDER BY `Film` ASC";

ausserdem hattest Du ; am ende! des sql befehls! Brauchst Du nicht!
 
Zuletzt bearbeitet von einem Moderator:
Das ging schnell!

Lag aber nur an der Schreibweise. Den Test mit echo() hatte ich schon gemacht und die Syntax war auch OK.

Ich hatte anstatt - Jahr='".$year."' -- Jahr='.$year.' geschrieben.

na egal.

Vielen vielen Dank.

Den Rest kann ich doch sicher mit isset() machen (wenn eine variable nicht gefüllt ist statt nach "" zu suchen sie einfach zu ignorieren), oder ?
 
Die Probleme mit der Abfrage sind jetzt gelöst.
Jetzt geht es mir darum, auszuschließen, dass wenn eine Variable leer ist, die DB trotzdem danach durchsucht wird.

z.B. wird an die URL noch ?year=2000&quali=VCD angehängt. mit dem query was wir haben, wird die db jetzt aber nach allem durchsucht, wo das Jahr 2000 ist, die Qualität VCD und die Anzahl der CDs meinetwegen " " ist (da ja nicht ?cds=2 angehängt wurde). nun würde aber nichts ausgegeben, da ja in der spalte cds immer eine eine zahl steht.

Also möchte ich gucken ob eine variable leer ist und sie dann aus dem query rauslassen. und dafür würde ich dann immer fragen isset ?
 
Zurück