Avatar billede Slettet bruger
21. september 2001 - 22:52 Der er 8 kommentarer og
1 løsning

Banner-rotation-system

Jeg har nedenstående kode til et banner-rotation system. Nu vil jeg gerne ændre sådan at der ikke står \"rand(1, 2)\" men af de bannere som er i databasen. Dvs. at den skal tælle hvor mange \"poster\" der er i tabellen \"banner\" ??? 

<?
$rigtigt_nr = rand(1, 2);

$db = mysql_connect(\"xxx\",\"xxx\",\"xxx\");
mysql_select_db(\"xxx\",$db);
$foresp = mysql_query(\"SELECT img_url,url FROM banner WHERE nr = \'$rigtigt_nr\'\");
while($data = mysql_fetch_array($foresp)){

  echo \"<table border=0><tr>\";
  echo \"<td><a target=_blank href=$data[1]><img border=0 alt=KLIK src=$data[0]></td></a>\";
  echo \"</tr></table>\";

}
?>
Avatar billede coderdk Praktikant
21. september 2001 - 23:46 #1
Denne SQL statement skulle give dig en random record:

  SELECT col1,col2,col3,col4,rand() as rand_col FROM quotes ORDER BY rand_col LIMIT 1


Avatar billede coderdk Praktikant
21. september 2001 - 23:47 #2
Eller i dit tilfælde:

$foresp = mysql_query(\"SELECT img_url,url,rand() as rand_col FROM banner ORDER BY rand_col LIMIT 1\");
Avatar billede coderdk Praktikant
21. september 2001 - 23:51 #3
Virker i MySQL v3.23 og derover
Avatar billede coderdk Praktikant
21. september 2001 - 23:52 #4
Det kan forøvrigt også formuleres sådan:

SELECT img_url,url FROM banner ORDER BY RAND() LIMIT 1
Avatar billede Slettet bruger
22. september 2001 - 12:43 #5
Tusinde tak mester!
Avatar billede Slettet bruger
22. september 2001 - 14:41 #6
CoderDK ---> Lige et hurtigt spørgsmål mere: (fik lige et genialt påfund)
Kan man ikke skyde noget \"where\" sætning ind så den kun trækker de bannere ud hvor der står eks. \"168x30\" i feltet \"size\" i MySQL databasen?
Avatar billede coderdk Praktikant
22. september 2001 - 16:50 #7
jo bare tilføj

  AND size = \'168x30\'

til din SQL statement
Avatar billede Slettet bruger
23. september 2001 - 14:07 #8
Den virker ikke rigtigt:
$foresp = mysql_query(\"SELECT navn,img_url,url,size,rand() as rand_col FROM banner ORDER BY rand_col LIMIT 1 AND size = \'168x30\'\");
Avatar billede Slettet bruger
24. september 2001 - 18:17 #9
Hvor skal det AND size = \'168x30\' sættes ind henne?????
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