mysql abfrage funktioniert nicht ganz ...

VIPbanner_de

www.VIPbanner.de
ID: 72674
L
1 Mai 2006
2.598
150
hi.. habe hier eine mysql abfrage die noch nciht ganz so funktioniert wie ich das gerne hätte:

PHP:
$urls_daten = mysql_query("select * from V4_urls WHERE `userid` = '$usersurf[id]' AND `free` = 'ja' AND (hits<maxviews OR hits=maxviews) OR `userid` = '$usersurf[id]' AND `free` = 'ja' AND maxviews='-1' ORDER BY lastview");

hits= erhaltene hits
maxvievs= maximale hits die diese ID erhalten darf

Jetzt stell ich als maxviews den Wert 3 ein.. sollte hits auch nicht größer als 3 werden.. aber es wird immer 4.... woran liegt das? "hits=maxviews" sollte das doch beheben... oder?
 
ebend nicht, denn mit

(hits<maxviews OR hits=maxviews)


holst dir doch auch die Einträge, die die maxviews schon erreicht haben, wenn die dann hochzählst, überschreiten die dann auch die maxviews.
(weil war ja vorher schon an der grenze)
 
und wie mache ich es dann am sinnvollsten das es korrekt funktioniert?.. ich bin mit meinem latein schon am Ende :p
 
Probier mal
PHP:
$urls_daten = mysql_query("select * from V4_urls WHERE `userid` = '".$usersurf[id]."' AND `free` = 'ja' AND `maxviews`>`hits` OR `maxviews` =  -1
ORDER BY `lastview` ASC");
 
Zuletzt bearbeitet:
habs jetzt mit dem code gemacht:

PHP:
$urls_daten = mysql_query("select * from V4_urls WHERE `userid` = '".$usersurf[id]."' AND `free` = 'ja' AND `hits` < `maxviews` OR `userid` = '".$usersurf[id]."' AND `free` = 'ja' AND `maxviews` = '-1' ORDER BY `lastview` ASC");  
 
$urls=mysql_fetch_array($urls_daten);

Scheint zu funktionieren... die "-1" Abfrage muss rein weil die für unbegrenzt steht
 
AUs Performancegründen könnte man die WHERE-Bedingung noch etwas umformen

PHP:
$urls_daten = mysql_query(
"select * from V4_urls 
WHERE `userid` = '".$usersurf[id]."' AND `free` = 'ja' AND 
( `hits` < `maxviews` OR `maxviews` = -1 )  
ORDER BY `lastview` ASC");