12. december 2004 - 01:14
Der er
11 kommentarer og 1 løsning
Løkke og mysql database
Hej Eksperter Jeg har brug for hjælp.. Jeg har en database som ser sådan ud.. CREATE TABLE `pictures` ( `girl_id` varchar(200) NOT NULL default '', `type` varchar(7) NOT NULL default '', `sum` int(2) NOT NULL default '0' ) TYPE=MyISAM; feltet sum er antalet af billeder med den pågældende pige.. Jeg har brug for en løkke som kan gentage denne kode: <img src="pic/tyra_b/xx.jpg" border="1" height="240" hspace="8" width="177"> Løkke skal tage talet fra feltet sum.. Hvis sum er 50 så skal løkke lave en kode der ser sådan ud: <img src="pic/tyra_b/03.jpg" border="1" height="240" hspace="8" width="177"> <img src="pic/tyra_b/04.jpg" border="1" height="240" hspace="8" width="177"> <img src="pic/tyra_b/05.jpg" border="1" height="240" hspace="8" width="177"> og så videre op til <img src="pic/tyra_b/50.jpg" border="1" height="240" hspace="8" width="177"> Altså løkke skal starte med at udskifte xx med 03 og derefter skal den slutte med talet i som står i felter "sum" Håber I forstår hvad jeg mener..
Annonceindlæg tema
12. december 2004 - 01:51
#1
$mysql_host = 'localhost'; $mysql_user = '..'; $mysql_pass = '..'; $mysql_db = '..'; // connect to mysql mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $sql = "SELECT sum FROM pictures WHERE girl_id = 42"; $res = mysql_query($sql) or die(mysql_error()); if( $res && ($row = mysql_fetch_assoc($res)) ) { for($i=1; $i < $row['sum']; i++ ) { printf('<img src="pic/tyra_b/%02d.jpg" border="1" height="240" hspace="8" width="177">', $i ); } } else { print "fandt ikke id 42"; }
12. december 2004 - 01:52
#2
Jeg har lavet lidt gætterier, men jeg håber du kan bruge det
12. december 2004 - 01:54
#3
Godt, jeg er selv kommet lidt nærmere en løsning: <?php $conn = mysql_connect("$server", "$user", "$password"); mysql_select_db("$database"); // Hent først data ud $resultat = mysql_query("SELECT sum from pictures where girl_id = '$id';"); while ($row = mysql_fetch_assoc($resultat)) { extract($row); ?> <? $tal = 3; while ($tal <= 30){ echo '<img src="pic/tyra_b/'; echo $tal; echo '.jpg'; $tal = $tal + 1; echo '">'; } ?> <?php }?> Det denne kode mangler, får at opstående er løst, er: der hvor der står 30, der skal den tage tallet fra feltet "sum" og bruge det.. Men billederne er meget store så dette stykke kode skal også tilføjes border="1" height="240" hspace="8" width="177" Jeg ved bare ikke hvor i lykken at den skal stå..
12. december 2004 - 02:00
#4
istedet for 30 kan du vel skrive $sum. Men det er grimt at bruge extract() - men det vil virke. istedet for $tal = 3; while($tal <= 30) { // eller $sum istedet for 30 kodekode $tal = $tal + 1; } så kan du bruge en for()-løkke for($tal=3;$tal <= 30; $tal = $tal +1 ) { kodekode } Det er lidt nemmere end while. Som du ser, så ligner det meget hianden (gør også det samme. for() er bare beregnet til dette).
12. december 2004 - 02:02
#5
mht det ekstra html kode, så kan du bruge: echo '">'; og erstatte den med echo '" border="1" height="240" hspace="8" width="177">'; så burde det være i vinkel. Bare husk på, at width/height på billeder gør ikke billeder mindre - udover visuelt (brugeren henter hele billedet i fuld størrelse - og det vil virke langsomt for mange).
12. december 2004 - 02:03
#6
forresten; i mit forslag kan du ersatte if( $res && ($row = mysql_fetch_assoc($res)) ) { med if( $row = mysql_fetch_assoc($res) ) { (der er ikke nogen grund til at bruge en løkke, da du jo kun vil vise een pige ad gangen)
12. december 2004 - 02:15
#7
Okay.. nu har jeg fået mange foreslag fra dig.. og nogle af dem har hjulpet.. Men jeg er blevet lidt forviret af alle de foreslag.. Min kode ser sådan ud (og den virker) <?php $conn = mysql_connect("$server", "$user", "$password"); mysql_select_db("$database"); // Hent først data ud $resultat = mysql_query("SELECT sum from pictures where girl_id = 'j-lo';"); while ($row = mysql_fetch_assoc($resultat)) { extract($row); ?> <? $tal = 3; while ($tal <= $sum){ echo '<img src="pic/tyra_b/'; echo $tal; echo '.jpg'; $tal = $tal + 1; echo '">'; } ?> <?php }?> Det eneste er at jeg gerne ville have tilføjet denne kode: border="1" height="240" hspace="8" width="177"
12. december 2004 - 02:16
#8
Ups.. du havde svaret for mig... Alt er nu klaret... Smider du lige et svar..
12. december 2004 - 02:17
#9
<?php $conn = mysql_connect($server, $user, $password); mysql_select_db($database); // Hent først data ud $resultat = mysql_query("SELECT sum from pictures where girl_id = 'j-lo';"); while ($row = mysql_fetch_assoc($resultat)) { extract($row); ?> <? $tal = 3; while ($tal <= $sum){ echo '<img src="pic/tyra_b/'; echo $tal; echo '.jpg'; $tal = $tal + 1; echo '" border="1" height="240" hspace="8" width="177">'; } ?> <?php }?>
12. december 2004 - 02:18
#10
cool. Det er også blevet sengetid :)
12. december 2004 - 02:43
#11
Tak.. Jeg har endnu et spørgsmål, men jeg vil ikke oprette et nyt spørgsmål, for så skal jeg til at forklare det hele igen.. Hvad er der i vejen med denne kode.. <?php require("config.php"); ?> <?php $id = $_GET['id']; $conn = mysql_connect("$server", "$user", "$password"); mysql_select_db("$database"); // Hent først data ud $resultat = mysql_query("SELECT sum, girl_id from pictures where girl_id = '$id';"); while ($row = mysql_fetch_assoc($resultat)) { extract($row); ?> <? $tal = 3; while ($tal <= $sum){ echo '<img src="pic/<?php echo $girl_id?>/'; echo $tal; echo '.jpg'; $tal = $tal + 1; echo '" border="1" height="240" hspace="8" width="177">'; } ?> <?php }?> Det eneste forskel er at jeg i tyra_b har skrevet <?php echo $girl_id?> fordi at den skulle tage feltet "girl_id" ud fra databasen.. Men det virker ikke..
12. december 2004 - 16:36
#12
Er klaret
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.