Avatar billede tlunde Nybegynder
21. marts 2004 - 11:30 Der er 10 kommentarer og
1 løsning

Hive 6 random pic ud fra db

Heysa alle,
Jeg er ved at lave denne side: www.rent-a-movie.dk

På forsiden, skal jeg hive 6 random billeder ud af min db hver gang siden reloades, hvordan gøres det? Og der må selvfølgelig ikke være to af det samme billede der :)

Hilsen
Thomas Lunde
Avatar billede rasmusbg Nybegynder
21. marts 2004 - 12:09 #1
rand(min,max) seks gange (Det er i php, du skriver siden, ikke?) på denne måde:

$billede1Nr = rand(1,grænse1);
$billede2Nr = rand(grænse1+1,grænse2);
$billede3Nr = rand(grænse2+1,grænse3);
$billede4Nr = rand(grænse3+1,grænse4);
$billede5Nr = rand(grænse4+1,grænse5);
$billede6Nr = rand(grænse5+1,max);
Avatar billede tlunde Nybegynder
21. marts 2004 - 12:11 #2
Har du ikke et eksempel på et lidt mere kørende eksempel? Jeg kan ikke se hvad jeg skal gøre med det der...
Avatar billede rasmusbg Nybegynder
21. marts 2004 - 12:14 #3
så laver du 6 mysql_query("SELECT sti_til_billede_eller_billede_som_BLOB FROM tabel_med_billede_data WHERE billedeId = $billedeXNr")
Avatar billede rasmusbg Nybegynder
21. marts 2004 - 12:15 #4
Grænsen skal bare beregnes udfra antallet af billeder i databasen
Avatar billede jonas_mikkelsen Nybegynder
21. marts 2004 - 15:44 #5
Eller man kan gøre det direkte vha. mysql, spare en masse kode, og få et script der er langt hurtigere:

SELECT "something" from "something" ORDER BY RAND() LIMIT 0,6;
Avatar billede tlunde Nybegynder
21. marts 2004 - 15:47 #6
jonas_mikkelsen >> Vil det sige at det i mit tilfælde bare skal hedde noget ala:
Select pic_url from www_filmliste order by rand() limit 0,6; ??

Men hvordan når jeg skal have 6 billeder ved siden af hinanden, skal jeg så bare sætte denne kode ind de 6 steder, hvor billederne skal indsættes? Eller skal koden se noget anderledes ud?
Avatar billede jonas_mikkelsen Nybegynder
21. marts 2004 - 15:54 #7
Hvis det er det du vil ha' (altså pic_url ud af www_filmliste) så ser det korrekt ud.

Hvis jeg forstår det korrekt, er det de 6 billeder du har stående ved siden af hinanden på den side du skriver URL til?

Så vil koden måske se ud i stil med:

$query = mysql_query("Select pic_url from www_filmliste order by rand() limit 0,6");

## noget html
while($row = mysql_fetch_object($query))
{
  ## noget html
  $out = "<img src='pic_url'>";
  ## sikkert noget mere html
}
## sikkert mere html

echo $out;
Avatar billede jonas_mikkelsen Nybegynder
21. marts 2004 - 15:55 #8
Ja, og så skal der jo selvfølgelig stå ".$row->pic_url." og ikke pic_url... - det er tidligt om morgenen...
Avatar billede tlunde Nybegynder
22. marts 2004 - 16:03 #9
jonas >> Jeg tror ikke helt jeg forstår :)

Sådan som jeg plejer at skrive når jeg hiver noget ud af databasen er f.eks. sådan her:

<?
db_con();

$query = mysql_query("SELECT titel,udg_dato,hits, id FROM www_filmliste ORDER BY hits DESC LIMIT 0,20");
while($row = mysql_fetch_array($query)) {

echo" <table class='tekstafsnit' width='100%' border='0' cellspacing='0' cellpadding='0'>
    <tr>
    <td><a href='filmliste_detaljer.php?id=$row[id]'>$row[titel]</a></td>
    </tr>
    </table>";       
}   
?>

Vil du så mene at jeg skal lave mine echo's om, så jeg laver en tabel deri, og hiver billederne ud på deres respektive pladser?
Avatar billede jonas_mikkelsen Nybegynder
23. marts 2004 - 12:10 #10
Det kommer jo alt sammen an på hvordan du vil have din side til at se ud. Det der laver jo bare en liste med links der står under hinanden. Når jeg kigger på din side, ser det ud som om at du gerne vil have 6 billeder ved siden af hinanden,og så skal du måske bruge:

$query = mysql_query("Select pic_url from www_filmliste order by rand() limit 0,6");
$out = "<table width='100%'><tr>";
while($row = mysql_fetch_object($query))
{
  $out .= "<td>";
  $out .= "<img src='".$row->pic_url."'>";
  $out .= "</td>";
}
$out .= "</tr>";
$out .= "</table>";
echo $out;

- det vil sikkert lave en tabel, hvor der er 6 billeder i, der står ved siden af hinanden. Alle sammen med tilfældige billeder i.

Og det er selvfølgelig bedøvende ligegyldigt om du bruger mysql_fetch_array eller mysql_fetch_object.
Avatar billede tlunde Nybegynder
10. februar 2005 - 10:14 #11
Slutter...
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