28. august 2003 - 12:38
Der er
11 kommentarer og 1 løsning
3 cols per row, hvordan?
Jeg har en mysql database, med en masse billeder, som jeg udskriver via en: while () { udskriver billeder her } og der kan jeg godt udskrive 2 billeder pr. række, ved at lave en if ($i%2) og så udskrive en afslutning af <tr> hvis det er m.m. Men spørgsmålet går på: Hvordan gør jeg så jeg kan udskrive 3 eller 4 billeder per række i sådan en while løkke? På forhånd tak
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.
28. august 2003 - 12:41
#1
Hov, sætter lige point lidt op :)
28. august 2003 - 12:43
#2
<?php $kolonner = 3; // antal billeder pr række $tablewidth = 400; // pixelbredde på tabellen $cellwidth = (int) ($tablewidth / $kolonner); //cellebredde $mhost = 'localhost'; // mysql host $muser = 'user'; // mysql bruger $mpaswd = 'paswd'; // mysql password $mdb = 'db'; // mysql database $mquery = 'SELECT image FROM gallery'; // mysql query'et $DB = mysql_connect($mhost, $muser, $mpaswd)or die(mysql_error()); mysql_select_db($mdb, $DB)or die(mysql_error()); $query = mysql_query($mquery)or die(mysql_error()); $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-1) { //problem med tom startrække og potentiel tom slutrække fikset $tmp .= "\t</tr>\n\t<tr>\n"; } list($image) = mysql_fetch_row($query); $tmp .= "\t\t<td width=\"$cellwidth\">$image</td>\n"; } for($i=0;$i<$kolonner-($antalimgs%$kolonner);$i++) { $tmp .= "\t\t<td width=\"$cellwidth\"> </td>\n"; } $tmp .= "\t</tr>\n</table>"; echo $tmp; } ?>
28. august 2003 - 12:44
#3
Kan du ikke bare skrive if( ($i%4) == 0) ???? Det ville jeg da tro hjalp
28. august 2003 - 12:46
#4
Det kan man ikke bare, hvis der også skal genereres korrekt html-kode - dvs. tabellen skal have korrekt antal celler i hver række og alle tags skal afsluttes korrekt.
28. august 2003 - 12:52
#5
tester lige tipsens
28. august 2003 - 12:59
#6
Jeg bruger koden nu: <?php $kolonner = 4; // antal billeder pr række $tablewidth = 400; // pixelbredde på tabellen $cellwidth = (int) ($tablewidth / $kolonner); //cellebredde include ("inc/mysql.inc.php"); $query = mysql_query("SELECT * FROM foto_billeder ORDER BY billede ASC") or die(mysql_error()); $antalimgs = mysql_num_rows($query); if(!$antalimgs) { echo 'Der er desværre ingen billeder i systemet endnu!'; } else { $tmp = "<table width=$tablewidth>\n\t<tr>\n"; for($i=0; $i < $antalimgs; $i++){ if(!($i%$kolonner) && $i>0 && $i<$antalimgs-1) { //problem med tom startrække og potentiel tom slutrække fikset $tmp .= "\t</tr>\n\t<tr>\n"; } list($image) = mysql_fetch_row($query); $tmp .= "\t\t<td width=\"$cellwidth\">$image</td>\n"; } for($i=0;$i<$kolonner-($antalimgs%$kolonner);$i++) { $tmp .= "\t\t<td width=\"$cellwidth\"> </td>\n"; } $tmp .= "\t</tr>\n</table>"; echo $tmp; } ?> Der kommer bare en masse tegn frem... i celler :) Hvordan udskriver jeg det ligesom $row = mysql_fetch_array($query); echo "<img src=\"$row[billede]\">"; i hver celle? Jeg har ikke leget så meget med list() som jeg kan se du har skrevet
28. august 2003 - 13:03
#7
"SELECT billede FROM " i stedet for "SELECT * FROM "
28. august 2003 - 13:04
#8
Ovenstående kode kan du forøvrigt bare placere øverst i dit script - den færdige tabel ligger til sidst i variablen $tmp og kan udskrives hvor du ønsker det med echo $tmp;
28. august 2003 - 13:06
#9
Jeps, virker nu Hvad så hvis jeg har: (har nemlig 2 slags billeder i tabellen) storbillede og billede Sådan at jeg skal lave: <a href="storbillede" target="_blank"><img src="billede"></a>
28. august 2003 - 13:11
#10
Hvad hedder db-felterne?
28. august 2003 - 13:14
#11
antager lillebillede og storbillede: $query = mysql_query("SELECT lillebillede, storbillede FROM foto_billeder ORDER BY lillebillede ASC") or die(mysql_error()); $antalimgs = mysql_num_rows($query); if(!$antalimgs) { echo 'Der er desværre ingen billeder i systemet endnu!'; } else { $tmp = "<table width=$tablewidth>\n\t<tr>\n"; for($i=0; $i < $antalimgs; $i++){ if(!($i%$kolonner) && $i>0 && $i<$antalimgs-1) { //problem med tom startrække og potentiel tom slutrække fikset $tmp .= "\t</tr>\n\t<tr>\n"; } list($smallimg, $bigimg) = mysql_fetch_row($query); $tmp .= "\t\t<td width=\"$cellwidth\"><a href=\"$bigimg\" target=\"_blank\" title=\"Se stort billede\"><img src=\"$smallimg\"></a></td>\n"; } for($i=0;$i<$kolonner-($antalimgs%$kolonner);$i++) { $tmp .= "\t\t<td width=\"$cellwidth\"> </td>\n"; } $tmp .= "\t</tr>\n</table>"; echo $tmp; }
28. august 2003 - 13:18
#12
Yes, det virker - mange tak
Vi tilbyder markedets bedste kurser inden for webudvikling