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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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