Avatar billede jakobsen Nybegynder
08. juli 2002 - 09:47 Der er 3 kommentarer og
1 løsning

select forskelligt?

jeg har 10 texter i min sql, og jeg vil kun have 4 ud af gangen, der skal skifte (måske random?) for hver udtræk.. nogen der har et eksempel ?
Avatar billede htx98i17 Professor
08. juli 2002 - 09:59 #1
SELECT * FROM tabel ORDER BY RAND() LIMIT 4
Avatar billede jakobsen Nybegynder
08. juli 2002 - 10:10 #2
skrive venligst det som "svar"
Avatar billede htx98i17 Professor
08. juli 2002 - 10:14 #3
svar
Avatar billede sobazz Nybegynder
08. juli 2002 - 10:17 #4
Tja...
Du vil få bruge for lidt mere end det. Hvis du vil have dataene ud vilkårligt og ikke ønsker, at de samme data forekommer to gange, vil du være nødt til at putte de allerede brugte i en array.

Første gang vil du kunne bruge ovenstående udtryk. Et lille eksempel:
$query = mysql_query("SELECT * FROM tabel ORDER BY RAND() LIMIT 4")
while($result = mysql_fetch_array($result)) {
  $used[] = $result['id'];               

  echo $result['tekst']."<br>";
}

Men i det efterfølgende kan du ikke bruge LIMIT i din sql-sætning, da du jo ikke er sikker på, om de data du henter ud ikke er blevet udskrevet i første omgang. Så derfor:

$query = mysql_query("SELECT * FROM tabel");

// I $query vil du muligvis kunne fravælge de allerede brugte. Det kræver for mit vedkommende at jeg afprøver scriptet, før jeg kan gennemskue det.

while($result = mysql_fetch_array($query)) {

  if(array_seach($result['id'],$used)) {
  } else {
  echo $result['tekst']."<br>";
  $used[] = $result['id'];
}
}

Overvej muligheden for at udelukke allerede brugte data allerede i din sql-sætning. If-sætning kan sikkert konstrueres bedre... men hvad fa'an.
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