Seite 2 von 2

Verfasst: 17.08.2007 20:00
von Arzee
Hab jetzt das hier zusammen gebaut:

Code: Alles auswählen

$sql = mysql_query("SELECT COUNT(id) as count FROM pr_site WHERE (IF(views>0 AND visits>0,(views/visits),1)+IF(hin>0 AND hout>0,(hin/hout),1))>(SELECT (IF(views>0 AND visits>0,(views/visits),1)+IF(hin>0 AND hout>0,(hin/hout),1)) as place FROM pr_site WHERE id='$id' LIMIT 1)");

echo mysql_result($sql,0)+1;
Lokal geht auch alles einwandfrei, so wie es sein sollte. Aber wenn ich es auf meinen Server hochlade dann zeigt es da einen Fehler, die MySQL Version ist anders.
Wie könnte ich das selbe umschreiben das es auch auf der alten Version geht?

Server MySQL Version: 4.0.24
Lokale MySQL Version: 5.0.20

Verfasst: 17.08.2007 22:13
von gn#36
Warum so kompliziert mit Subquery? (Das wird auch das sein, was in der 4er Version - die übrigens total veraltet ist - nicht geht) Eigentlich müsste sich das auch durch doppelte Verwendung der gleichen Tabelle mit einem Full Join oder left Join realisieren lassen, in etwa so:

Code: Alles auswählen

SELECT COUNT(*) AS count 
FROM 
pr_site a, pr_site b 
WHERE 
(
IF(a.views>0 AND a.visits>0,(a.views/a.visits),1)
+
IF(a.hin>0 AND a.hout>0,(a.hin/a.hout),1)
)
>
(
IF(b.views>0 AND b.visits>0,(b.views/b.visits),1)
+
IF(b.hin>0 AND b.hout>0,(b.hin/b.hout),1)
)
AND b.id = '$id'

Verfasst: 17.08.2007 22:50
von Arzee
Danke so gehts