Avatar billede side1 Novice
23. oktober 2009 - 18:11 Der er 9 kommentarer og
1 løsning

Ændre på rækkefølge af records

Jeg trække de 3 højeste priser (cpc) ude at min tabel. Jeg vil gerne have at disse 3 højeste priser, bliver vist i random rækkefølje. Altså sådan at det er forskelligt, hvilken der kommer øverst af de 3. På de viste eksempel bliver den højeste alting den øverste.

$sql_kampagne_sider = "SELECT * FROM {$prefix}pages WHERE accepted = 'y' ORDER BY cpc DESC LIMIT 3";

$sql_kampagne_sider = mysql_query($sql_kampagne_sider) or die("Query failed02 : " . mysql_error());
Avatar billede kasper.h Nybegynder
23. oktober 2009 - 18:18 #1
$sql_kampagne_sider = "SELECT * FROM {$prefix}pages WHERE accepted = 'y' ORDER BY RAND() LIMIT 3";
Avatar billede side1 Novice
23. oktober 2009 - 18:25 #2
Nej desværre den kender jeg godt og den ville selvfølgelig virke hvis der kun var 3 records. Som jeg skriver så skal der udtages de 3 højeste (ud af mange records) og disse 3 skal så vises i random rækkefølge.
Avatar billede kasper.h Nybegynder
23. oktober 2009 - 19:01 #3
Jep, sorry, så det godt lige da jeg havde sendt. Du skal nok ud at lave nogle joins, eller flere queries, tror jeg.
Avatar billede erikjacobsen Ekspert
23. oktober 2009 - 19:10 #4
Kan du ikke bare blande de 3 i PHP?
Avatar billede side1 Novice
23. oktober 2009 - 20:01 #5
Hvis man ikke kan gøre det i database udtrækket, så bliver jeg nød til det. Men hvordan ville du gøre det?. Fra kaldet

$sql_kampagne_sider = mysql_query($sql_kampagne_sider) or die("Query failed02 : " . mysql_error());

Hvordan ville du så gøre det?
Avatar billede erikjacobsen Ekspert
23. oktober 2009 - 20:08 #6
while ($row = mysql_fetch_assoc($sql_kampagne_sider)) {
  $arr[] = $ow;
}

shuffle($arr);

foreach ($arr as $row) {
    print $tow['feltnavn'];
}
Avatar billede erikjacobsen Ekspert
23. oktober 2009 - 20:09 #7
Nå, $or og $tow skal begge være $row.
Avatar billede arne_v Ekspert
24. oktober 2009 - 02:13 #8
Med nyere MySQL prøv:

$sql_kampagne_sider = "SELECT * FROM (SELECT * FROM {$prefix}pages WHERE accepted = 'y' ORDER BY cpc DESC LIMIT 3) x ORDER BY RAND()";
Avatar billede side1 Novice
26. oktober 2009 - 22:04 #9
Begge virker
Avatar billede arne_v Ekspert
22. november 2009 - 04:19 #10
Tid at få afsluttet her?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester