webForumDet fria alternativet

loop

6 svar · 329 visningar · startad av johnkallioniemi

johnkallioniemiMedlem sedan aug. 200534 inlägg
#1

Nån som vet varför jag får 2 bilder på första raden och 4 på dom resterande?

<?
include 'db.php';
$i=1;
$result=mysql_query("SELECT path,filename,thumbname,title FROM pictures ORDER BY id ASC");
while($rad=mysql_fetch_array($result)){
$i++;
if($i=="4"){
?>

</tr>
<tr>
    <td nowrap align="center">
    <a href="./pics/<?=$rad['filename']?>">
    <img srC="pics/<?=$rad['thumbname']?>" border="1" style="border-color: #000000;"></a><br><?=$rad['title']?>
    </td>
    <?
    $i="0";
    } else {
    ?>
    <td nowrap align="center">
    <a href="./pics/<?=$rad['filename']?>">
    <img srC="pics/<?=$rad['thumbname']?>" border="1" style="border-color: #000000;"></a><br><?=$rad['title']?>
    </td>
    <?
        }
    }
    ?>
pettssonMedlem sedan jan. 20021 122 inlägg
#2

Du börjar med att sätta $i till 1, inte 0 som du gör efter den har blivit fyra.
Du har gjort två missar, inte egentliga fel, men inte helt rätt heller:
* Du jämför $i mot strängen "4" istället för talet 4. Det fungerar, men det är inte rätt. Samma sak när du sätter $i till strängen "0" istället för talet.
* Du kan korta ner koden genom att inte skriva om tabellcellerna utan göra såhär istället:

<?
include 'db.php';
$result=mysql_query("SELECT path,filename,thumbname,title FROM pictures ORDER BY id ASC");
$i = 0;
while($rad = mysql_fetch_assoc($result)) {
$i++;
if($i == 4) {
 $i = 0;
 print "</tr><tr>";
}
?>
<td nowrap align="center">
<a href="./pics/<?=$rad['filename']?>">
<img srC="pics/<?=$rad['thumbname']?>" border="1" style="border-color: #000000;"></a><br><?=$rad['title']?>
</td>
<?
}
?>
johnkallioniemiMedlem sedan aug. 200534 inlägg
#3

Ok tackar för hjälpen men har fortfarande problem men nu visar den 3 på första raden och 4 på resten hmm

johnkallioniemiMedlem sedan aug. 200534 inlägg
#4

Märkte att om jag satte så här så får jag 4 på varje rad i 5 rader om jag har 20 bilder, detta verkar fungera men jag finner ingen logik i det hela. Är detta rätt ens eller är det bara ren tur att jag lyckades?

<?
include 'db.php';
$i=1;
$result=mysql_query("SELECT path,filename,thumbname,title FROM pictures ORDER BY id ASC);
while($rad=mysql_fetch_assoc($result)){
$i++;
if($i== 6){
$i=2;
?>
</tr>
<tr>
<?}?>
    <td nowrap align="center">
    <a href="./pics/<?=$rad['filename']?>">
    <img src="pics/<?=$rad['thumbname']?>" border="1" style="border-color: #000000;"></a><br><?=$rad['title']?>
    </td>
    <?
    }
    ?>
pettssonMedlem sedan jan. 20021 122 inlägg
#5

Får du den där att funka måste det vara tur, eftersom du inte avslutar sql-satsen med en " ;)
$i ska initieras till 0, och sedan sättas till 0 när if-satsen körs. Kommer alla bilder med då, eller saknar den några? I så fall kan du skriva ut $i innan du kör $i++;, så får du se hur den räknar upp.

johnkallioniemiMedlem sedan aug. 200534 inlägg
#6

JIPPI! fick det att fungera med denna kod
tack för hjälpen ;D, nu kan jag äntligen börja fokusera på GD ;D

<?
include 'db.php';
$i=0;
$result=mysql_query("SELECT path,filename,thumbname,title FROM pictures ORDER BY id ASC");
while($rad=mysql_fetch_assoc($result)){
if($i== 4){
$i=0;
?>
</tr>
<tr>
<?}
$i++;
?>
    <td nowrap align="center">
    <a href="./pics/<?=$rad['filename']?>">
    <img src="pics/<?=$rad['thumbname']?>" border="1" style="border-color: #000000;"></a><br><?=$rad['title']?>
    </td>
    <?
    }
    ?>
pettssonMedlem sedan jan. 20021 122 inlägg
#7

När du fått svar på din fråga ska du trycka på "acceptera svar", så vet man att problemet är löst. :)

128 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)