Avatar billede danic Nybegynder
29. august 2003 - 21:04 Der er 13 kommentarer og
1 løsning

Hjælp til while lykke

Jeg har en while lykke som løbe x antal felter igennem ud fra en database, hvordan får man den til at skrive

echo"</tr>";
echo"<tr>";

efter 3 gennemgang?
Avatar billede htm Nybegynder
29. august 2003 - 21:06 #1
Du skal vist kigge lidt på dette eksempel: http://www.nothing.dk/thing/testkolonneting.php

Går ud fra at det er det du skal lave?

Siden er lidt langsom lige nu...
Avatar billede htm Nybegynder
29. august 2003 - 21:08 #2
Din while hedder ud som sædvanelig:
while ($row = mysql_fetch_array($query)) {

og så bruger du i++ i bunden.
Avatar billede tipsen Nybegynder
29. august 2003 - 21:13 #3
Alternativ:

<?php
$kolonner  = 5;
$tablewidth = 800;
$cellwidth  = (int) ($tablewidth / $kolonner);
include("connect.php");
$query = mysql_query("SELECT image FROM gallery") 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) {
      $tmp .= "\t</tr>\n\t<tr>\n";
    }
    list($image) = mysql_fetch_row($query);
    $tmp .= "\t\t<td width=\"$cellwidth\"><img src='$image'></td>\n";
  }
  for($i=0;$antalimgs%$kolonner && $i<$kolonner-($antalimgs%$kolonner);$i++) {
    $tmp .= "\t\t<td width=\"$cellwidth\">&nbsp;</td>\n";
  }
  $tmp .= "\t</tr>\n</table>";
  echo $tmp;
}
?>
Avatar billede danic Nybegynder
29. august 2003 - 21:13 #4
A'la det her? denne her virker bare ikke

$Variablearray = array(1,2,3);
$i = 0;
while ($i < sizeof($Variablearray)) {
    if ($i == 3) {

        echo"</tr>";
        echo"<tr>";
    }
    $i++;
}
Avatar billede gustav-olsen Nybegynder
29. august 2003 - 21:13 #5
$i = 1;
while(lala) {

kode her

if($i == 3) {
echo"</tr>";
echo"<tr>";
}

$i++;
}
Avatar billede gustav-olsen Nybegynder
29. august 2003 - 21:14 #6
hvorfor er alle hurtigere end mig? :-)
Avatar billede danic Nybegynder
29. august 2003 - 21:15 #7
gustav-olsen> den skal printe ud hver 3 gang, ikke kun 1 gang
Avatar billede htm Nybegynder
29. august 2003 - 21:16 #8
Nej ikke i==3 men i%3 == 0

Prøv og kig på eksemplet.
Avatar billede gustav-olsen Nybegynder
29. august 2003 - 21:17 #9
danic> det er da også rigtigt. :-) *hov*
Avatar billede danic Nybegynder
29. august 2003 - 21:18 #10
<?
if($i == 3) {
echo"</tr>";
echo"<tr>";
$i = 1;
}
$i++;

}
?>
Avatar billede danic Nybegynder
29. august 2003 - 21:21 #11
øv det virker ikke da $i = 1; kommer før $i++;
Avatar billede htm Nybegynder
29. august 2003 - 21:25 #12
$i=0
while ($row = mysql_fetch_array($query)) {
  if ($i%3 == 0 && $i != 0)
    echo "</tr>\n";
  if ($i%3 == 0) {
    echo "<tr>\n";

//  echo tabeldata
  $i++;
}
Avatar billede danic Nybegynder
29. august 2003 - 21:39 #13
Den sidste her virker :)
Avatar billede htm Nybegynder
29. august 2003 - 21:41 #14
præcis som mit første eksempel ;o)

Takker for point
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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