Avatar billede internet Nybegynder
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..
Avatar billede dennismp Nybegynder
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";
}
Avatar billede dennismp Nybegynder
12. december 2004 - 01:52 #2
Jeg har lavet lidt gætterier, men jeg håber du kan bruge det
Avatar billede internet Nybegynder
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å..
Avatar billede dennismp Nybegynder
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).
Avatar billede dennismp Nybegynder
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).
Avatar billede dennismp Nybegynder
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)
Avatar billede internet Nybegynder
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"
Avatar billede internet Nybegynder
12. december 2004 - 02:16 #8
Ups.. du havde svaret for mig...

Alt er nu klaret...

Smider du lige et svar..
Avatar billede dennismp Nybegynder
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 }?>
Avatar billede dennismp Nybegynder
12. december 2004 - 02:18 #10
cool. Det er også blevet sengetid :)
Avatar billede internet Nybegynder
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..
Avatar billede internet Nybegynder
12. december 2004 - 16:36 #12
Er klaret
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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