30. oktober 2004 - 19:47
Der er
39 kommentarer og 2 løsninger
4 pr. linie - galleri
hei.. Har et "galleri", der udskriver alle billederne jeg har i en mappe.. Men hvordan gør jeg så den kun viser 4 billeder pr. "linie".. Min kode ser således ud: <table width=100% border=0 cellspacing=10 cellpadding=10> <tr> <? $destination = "../images/pictures/profiles/"; $query = mysql_query("SELECT * FROM improved_pictures ORDER BY id DESC"); while ($row = mysql_fetch_array($query)) { $picture = $row[picture]; $name = $row[name]; $date = date("d.m.Y", $row[date]); $time = date("H:i:s", $row[date]); ?> <td><center><img src="<? echo $destination ?><? echo $picture ?>" border=0><font size=1 color=white face=verdana><br><? echo $name ?></td> <? } ?> </tr> </table><br>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
30. oktober 2004 - 19:51
#1
$query = mysql_query("SELECT * FROM improved_pictures ORDER BY id DESC LIMIT 0 , 4"); du ska bare have LIMIT ind..
30. oktober 2004 - 19:52
#2
nej det skal jeg ikke...
30. oktober 2004 - 19:53
#3
Hvis der er 4 billeder på en række, så skal den skifte linie, og så vise 4 nye.. :)
30. oktober 2004 - 20:00
#4
Måske sådan her: <?php $kolonner = 4; $tablewidth = 100; $cellwidth = (int) ($tablewidth / $kolonner); $destination = "../images/pictures/profiles/"; $query = mysql_query("SELECT picture, name, DATE_FORMAT(`date`, 'd.m.Y H:i:s') AS dato FROM improved_pictures ORDER BY id DESC"); $antalimgs = mysql_num_rows($query); if(!$antalimgs) { echo "Desværre ingen billeder!"; } else { $tmp = "<table width=\"".$tablewidth."%\">\n\t<tr>\n"; for($i=0; $i < $antalimgs; $i++){ if(!($i%$kolonner) && $i>0 && $i<$antalimgs) { $tmp .= "\t</tr>\n\t<tr>\n"; } list($picture, $name, $dato) = mysql_fetch_row($query); $tmp .= "\t\t<td width=\"".$cellwidth."%\"><img src=\".$destination.$picture."\"><br />".$name."<br />".$dato."</td>\n"; } for($i=0;$antalimgs%$kolonner && $i<$kolonner-($antalimgs%$kolonner);$i++) { $tmp .= "\t\t<td width=\"".$cellwidth."%\"> </td>\n"; } $tmp .= "\t</tr>\n</table>"; echo $tmp; } ?>
30. oktober 2004 - 20:01
#5
Prøv med nedenstående - skal dog sige at det er utestet! - - - <table width=100% border=0 cellspacing=10 cellpadding=10> <tr> <? $destination = "../images/pictures/profiles/"; $query = mysql_query("SELECT * FROM improved_pictures ORDER BY id DESC"); $i = 1; while ($row = mysql_fetch_array($query)) { $picture = $row[picture]; $name = $row[name]; $date = date("d.m.Y", $row[date]); $time = date("H:i:s", $row[date]); ?> <td> <center><img src="<? echo $destination ?><? echo $picture ?>" border=0><font size=1 color=white face=verdana><br><? echo $name ?> </td> <? $i++; if($i%4) { echo "</tr><tr>"; } } ?> </tr> </table><br> - - -
30. oktober 2004 - 20:04
#6
Rettelse - du skal lige flytte $i++; ned under if-sætningen: - - - if($i%4) { echo "</tr><tr>"; } $i++; - - -
30. oktober 2004 - 20:08
#7
den funker desværre stadig ikke jacob.. Den viser 2 rækker ned af :/ Og hmortensen: din funker slet ikke, skriver der er en fejl i: $tmp .= "\t\t<td width=\"".$cellwidth."%\"><img src=\".$destination.$picture."\"><br />".$name."<br />".$dato."</td>\n";
30. oktober 2004 - 20:09
#8
Manglede bare en gnuf: tmp .= "\t\t<td width=\"".$cellwidth."%\"><img src=\"".$destination.$picture."\"><br />".$name."<br />".$dato."</td>\n";
30. oktober 2004 - 20:12
#9
gub- okay.. det var det du mente :)..
30. oktober 2004 - 20:16
#10
Hmm undre mig lidt over hvorfor den kun laver 2 pr. række - synes da det burde være 4...
30. oktober 2004 - 20:20
#11
Det står stadig ikke helt som det skal :/ Hvis vi ser lidt fremad, så skal html'en gerne se nogenlunde således ud, hvis vi tar en kildekode, efter at "scriptet" er kørt: <tr> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> </tr> <tr> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> </tr> Hvis det hjælper lidt på det :)
30. oktober 2004 - 20:20
#12
Du kan vel selv rette html'en til...
30. oktober 2004 - 20:23
#13
Prøv lige at rette min kode til: - - - if($i%5) { echo "</tr><tr>"; } $i++; - - - Hvor mange giver dette pr. række ?
30. oktober 2004 - 20:27
#14
jakob, prøv at udregne modus af 1 - 10. med modus 4, vil den skifte: 1 2 3 4 - 5 6 7 8 - 9 10
30. oktober 2004 - 20:31
#15
jakob >> Den viser billederne nedad, i 1 række :P
30. oktober 2004 - 20:32
#16
og hvis den så hedder if($i%4), så viser den 4 nedad, og så skifter den henad og viser nedad igen.. Det skal bare være omvendt, så er den der :D
30. oktober 2004 - 20:32
#17
Har du prøvet min ? Den virker, hvis du lige retter evt trykfejl.
30. oktober 2004 - 20:33
#18
Ja jeg har prøvet, og det ser desværre rimelig fucked op ud.. :/
30. oktober 2004 - 20:34
#19
Virker fint for mig. Kan desværre ikke teste lige nu, da mit webhotel er nede :(
30. oktober 2004 - 20:36
#20
gub- >> if($i%4 == 0) Så virker det!
30. oktober 2004 - 20:40
#21
if ($i%4) returnere vel også false, når resten er 0, og true resten af gangene. Så det udsput jeg kastede før, passede jo fint
30. oktober 2004 - 20:46
#23
ja, det er det jeg mener: 1 - gir rest - true - lav </tr><tr> 2 - gir rest - true - lav </tr><tr> 3 - gir rest - true - lav </tr><tr> 4 - gir ingen rest - false 5 - gir rest - true - lav </tr><tr> 6 - gir rest - true - lav </tr><tr> 7 - gir rest - true - lav </tr><tr> 8 - gir ingen rest - false 9 - gir rest - true - lav </tr><tr>
30. oktober 2004 - 20:48
#24
Din vil også lave ged i tabellen, når antallet af billeder gir en rest. fx med 6 billeder: <tr> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> </tr> <tr> <td><center><img src="linktilbillede.jpg" border="0"></center></td> <td><center><img src="linktilbillede.jpg" border="0"></center></td> </tr> skulle gerne lave: <td> </td> <td> </td> til sidst.
30. oktober 2004 - 22:12
#26
$i=$i-1; er vel det samme som $i--;
30. oktober 2004 - 22:15
#27
hmortensen >> hehe Uha du er skarp - men ja :-)
30. oktober 2004 - 23:23
#28
erhm yes, nu er jeg helt forvirret :/ Hvad blev det endelig resultat så :D
30. oktober 2004 - 23:51
#29
gub- >> At det burde virke optimalt med nedenstående løsning, eller hmortensens svar: - - - <table width=100% border=0 cellspacing=10 cellpadding=10> <tr> <? $destination = "../images/pictures/profiles/"; $query = mysql_query("SELECT * FROM improved_pictures ORDER BY id DESC"); $i = 1; while ($row = mysql_fetch_array($query)) { $picture = $row[picture]; $name = $row[name]; $date = date("d.m.Y", $row[date]); $time = date("H:i:s", $row[date]); ?> <td> <center><img src="<? echo $destination ?><? echo $picture ?>" border=0><font size=1 color=white face=verdana><br><? echo $name ?> </td> <? if($i%4 == 0) { echo "</tr><tr>"; } $i++; } $i--; while($i%4 != 0) { echo "<td> </td>"; $i++; } ?> </tr> </table><br> - - -
31. oktober 2004 - 12:27
#30
jeg siger mange tak, hvem vil ha pointsne? :)
31. oktober 2004 - 12:35
#31
Har du testet - virker det ? Tjah er i hvertfald et svar fra mig!
31. oktober 2004 - 13:21
#32
Hvis du har brugt jakob's løsning, så gi dem til ham. jakob, ang $i--, var bare lige i tvivl, var ikke for at kritisere :)
31. oktober 2004 - 13:59
#33
hmortensen >> Det er helt i orden - men jo det virker på samme måde begge dele.
31. oktober 2004 - 14:00
#34
hmortensen >> Kunne du ikke også lægge et svar, så der er mulighed for at dele. Du er jo også kommet med en god løsning - lidt smartere end min.
31. oktober 2004 - 14:49
#35
Jo, den er bare ikke så begynder venlig, men skulle virke i alle tilfælde
31. oktober 2004 - 17:29
#36
kan man få hvert billed til at indeholde et link til f.eks. et større eksemplar?
31. oktober 2004 - 17:40
#37
Ja, bare sæt <a href="<? echo $destination.$picture; ?>" target="_blank">im src...></a>
31. oktober 2004 - 18:00
#38
hvis nu jeg i db har indsat navnet på det store eksemplar kan jeg så ikke kalde det i "samme ombæring"
31. oktober 2004 - 18:14
#39
Så må det blive: <a href="<? echo $destination.$row['navnpåfelt']; ?>" target="_blank">im src...></a>
31. oktober 2004 - 18:51
#40
hmortensen>> mange tak for hjælpen herfra
01. november 2004 - 09:19
#41
Takker for point!
Vi tilbyder markedets bedste kurser inden for webudvikling