Mailinglisten-Archive |
Aloha alle,
> Gloss Mathias schrieb am Donnerstag, den 19. August 1999:
> > laut php-manual muss die bedingung hinter
> > dem WHERE in klammern stehen.
>
> Nö, muß nicht! (Darf aber ...)
> Welchen Passus im Handbuch meinst Du?
>
Args... ich hab gerade noch mal nachgeschaut,
es steht NICHT im Manual .... ich frag mich
nur warum ich dann immer die Klammern setze ;-)
Vermutlich hatte ich es in einem Beispiel mal
so gesehen.
Aber was mir gerade noch zu dieser Abfrage
einfällt: So ein Problem hatte ich auch mal.
$sql = "SELECT * FROM modelsw WHERE
> koerpergroesse>=$koerpergroessemin AND koerpergroesse<=$koerpergroessemax
> AND konfektionsgroesse>=$konfektionsgroessemin AND
> konfektionsgroesse<=$konfektonsgroessemax
> AND oberweite>=$oberweitemin AND oberweite<=$oberweitemax
> AND waesche>=$waeschemin AND waesche<=$waeschemax
> AND tallie>=$talliemin AND tallie<=$talliemax
> AND huefte>=$hueftemin AND huefte<=$hueftemax
> AND haarfarbe=$haarfarbe
> AND augenfarbe=$augenfarbe,$db";
(Martin hat natürlich Recht, die ' gehören links
und rechts von den Strings hin ;-)
Wenn jemand z.b. bei Oberweite nichts eingibt,
(weil es ihm egal ist ) fällt diese Zeile auf die Nase:
AND oberweite>=$oberweitemin AND oberweite<=$oberweitemax
(weil der rechte Teil dann : oberweite <=0 und das ist vermutlich nirgends
der Fall, bedingt durch die AND-Verknüpfung ist dann auch alles falsch )
Ich hatte das damals dann so geloest (es waren lauter
minimum/maximum-Vergleiche,
hier jetzt nur für die Oberweite)
$wherestring = "1"; // für den Fall daß einer gar nichts eingibt, weil
sonst bleibt
// der $wherestring leer.
if ( $oberweite_min )
{ $wherestring .= "AND oberweite>='$oberweite_min' "; }
if ( $oberweite_max )
{ $wherestring .= "AND oberweite<='$oberweite_max' "; }
select * from model_tabelle where ($wherestring);
Grüße, Mathias
---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive