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
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
Gruss JLoop