Problem mit SQL Abfrage

loc_ju

Mitglied
Ich hab ne Datenbank mit folgendem Aufbau:
PLZ; Anbieter; Tarif; Preis; von; bis;

Jetzt kann es sein, dass in der gleichen PLZ mehrere Anbieter sind, bzw, ein anbieter 3 mal drinsteht, z.b. 0 - 1000; 1001-4000; 4001-0
0 bedeutet eigentlich dass es keine Grenze gibt.
Jetzt gibts aber auch den Fall dass ein Anbieter 0-0 drinstehen hat, aber ich komm irgendwie mit den Abfragen net klar.

Ich kann zwar abfragen
SELECT * FROM `Tabelle` WHERE PLZ = 91717 and $verbrauch >= 'von' and $verbrauch <= 'bis'; aber dann kommt grad bei den fällen 0-0 bzw 4001-0 kein Ergebnis.

Ich würde mich freuen wenn mir jemand einen Denkanstoß geben könnte, will das schließlich selber alles mal können.*gg*
Danke
 
Hi.

Warum hast du denn das PHP Forum für dieses Problem ausgesucht? Was hat das ganze mit PHP zu tun?

Eine Postleitzahl sollte man nicht als Zahl speichern. Es ist keine.

Wenn die 0 eine spezielle Bedeutung hat, dann mußt du sie auch speziell behandeln:
SQL:
where (von = 0 or von <= $verbrauch ) and (bis = 0 or $verbrauch <= bis)
Gruß

PS: Und bitte verwende die Code Tags. Danke.
 
Könntest direkt per PHP mit einer verkürzten If-Bedingung auf 0 testen. Wenn 0 dann einfach die entsprechende Abfrage kicken (nicht ausgeben).

PHP:
$Kleiner = ($Verbrauch == 0) ? "" : "der SQL-Teil";

e:/ wobei ich davon ausgegangen bin dass du eine PHP-Lösung willst, da du im PHP-Forum schreibst ;)
 
@ deepthroat

super, danke hat funktioniert*gg*
hab vorhin das sql forum überlesen, sonst hätte ich das da Gepostet.
*gg*

Danke nochmals
 
Zurück