Seite 13 von 16

Verfasst: 04.05.2003 19:11
von saerdnaer
@esperitox: was meinst du ist das ein bug in mysql?

mal schauen... könnte mal jemand testen ob das hier geht?

Code: Alles auswählen

$order_by = "IF(0, 1, vara) $sort_order"; 
$toh_sql1 = ', AVG(r.rating) AS vara';
ah

Verfasst: 04.05.2003 20:06
von Stitch
Nein geht nicht @saerdnaer das ist dann genauso sortiert wie am Anfang also 4.69 vor 5.00

Gruß Stitch

Verfasst: 04.05.2003 20:17
von saerdnaer
ja schon klar. es ging nur drum ob eine fehlermeldung angezeigt wird...
also dann probiers mal hiermit:

Code: Alles auswählen

$order_by = "IF(r.rating = NULL, 0, rating_avg ) $sort_order"; 
$toh_sql1 = ', AVG(r.rating) AS rating_avg';

Verfasst: 04.05.2003 20:19
von Stitch
Damit kommt wieder die fehlermeldung Unknown column 'rating_avg' in 'order clause' :)

Gruß Stitch

Verfasst: 04.05.2003 20:34
von saerdnaer
ach stopp es geht ja um was anderes...

Code: Alles auswählen

$order_by = "rating_avg $sort_order, t.topic_last_post_id $sort_order"; 
$toh_sql1 = ', AVG(r.rating) AS rating_avg';

Verfasst: 05.05.2003 10:44
von Stitch
Das bringt dasselbe ergebnis wie esperitox´s lösung es wird zwar richtig sortiert aber die Nuller stehen vor den Bewerteten ob man nun Absteigend/Aufsteigend sortiert :(

Gruß Stitch

Verfasst: 06.05.2003 11:59
von Stitch
Sonst noch wer ne idee(??) weil sonst werde ich das auch erstmal wieder ausbauen wirklich sehr schade drum :cry:

Gruss Stitch

Verfasst: 07.05.2003 13:18
von JLoop©
@saerdnaer könnte man das ganze nicht über 2 DB abfragen regeln vieleicht liegts ja an dem LEFT JOIN?

Gruss JLoop

Verfasst: 07.05.2003 19:30
von saerdnaer
es ist schon klar an was es liegt... aber warte da kommt mir noch eine idee...

Code: Alles auswählen

$order_by = "IF( r.rating = NULL, 1 , 0 ) $sort_order, rating_avg $sort_order, t.topic_last_post_id $sort_order"; 
$toh_sql1 = ', AVG(r.rating) AS rating_avg';
ah

Verfasst: 07.05.2003 21:41
von JLoop©
saerdnaer hat geschrieben:es ist schon klar an was es liegt... aber warte da kommt mir noch eine idee...

Code: Alles auswählen

$order_by = "IF( r.rating = NULL, 1 , 0 ) $sort_order, rating_avg $sort_order, t.topic_last_post_id $sort_order"; 
$toh_sql1 = ', AVG(r.rating) AS rating_avg';
ah
Also bei mir funzt es nicht das höchstbewertete ist ganz oben nach dem sortieren dann kommen die 0er und ganz am ende dann die restlichen Bewerteten Posts :o

Gruss JLoop