Det her burde gøre det.
- <?
-
- mysql_connect("...","...","...");
- mysql_select_db("...");
-
- $query = mysql_query("SELECT * FROM imgcx ORDER BY Rand() LIMIT 0,1");
-
- while($info = mysql_fetch_array($query)) {
-
- print "<a href=\" $info[link] \"><img src=\" $info[image] \" border=\"0\" alt=\" $info[description] \" ></a>";
-
- };
-
- ?>
Det eneste du laver om fra opretterens kodestykke er jo at lave en $query variabel indeholdende forespørgslen. Funktionelt er de to kodestykker det samme.
Det rigtige spørgsmål er, hvorfor bruger du en while løkke, hvis du kun skal hente en enkelt række fra databasen? Det giver ingen mening at lave en løkke, der kun skal gentage sig selv en enkelt gang. Meningen med løkker er at de skal gentage sig selv indtil flere gange.
Det er heller ikke nødvendigt at bruge LIMIT 0,1, LIMIT 1 er nok. Når du kalder keys i et associativt array skal du huske at sætte apostroffer eller anførselstegn rundt om. $info[link] = bad, $info['link'] = good.
http://dk.php.net/manual/en/language.types.array.php læs ved array do's and don'ts: Why is $foo[bar] wrong.
Desuden virker din print statement rodet, hvorfor har du valgt at bruge \ backslashes i stedet for bare at adskille variablerne og resten af stringen.
- <?
-
- mysql_connect("...","...","...");
- mysql_select_db("...");
-
- $sql = "SELECT * FROM imgcx ORDER BY RAND() LIMIT 1";
-
- $query = mysql_query($sql);
-
- $info = mysql_fetch_array($query);
-
- print "<a href=\" $info['link'] \"><img src=\" $info['image'] \" border=\"0\" alt=\" $info['description'] \" ></a>";
-
- ?>
Indlæg senest redigeret d. 10.08.2010 14:10 af Bruger #16047