Toon posts:

[php] automatisch tabelrow afbreken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

met een array lees ik alle bestanden uit een dir. Deze array wordt gevuld en gesorteerd op asc volgorde.

Nu lees die een tabel uit. Na 4* <td> moet hij automatisch een </tr> uitlezen en met een nieuwe row <tr> beginnen.

Na 4 kolommen en 5 rijen (20 cellen) moet die automatisch een </tr> en het einde van de tabel </table> geven.

Nu heb ik dit als volgt geprobeerd op te lossen:
PHP:
1
<? echo "<table>\n"; echo "<tr>\n"; $open = opendir("pictures/lasershow"); $i=0; while ($bestanden = readdir ($open) ) { if(($bestanden<>".") AND ($bestanden<>"..") AND ($bestanden<>"thumbnails") AND (substr($bestanden,-3)=="jpg")){   $bestandslijst[$i] = $bestanden;   $i++; } } closedir($open); sort($bestandslijst); for ($i=0;$i<count($bestandslijst);$i++) { $count++;   echo "<td>\n";   echo $bestandslijst[$i] . "</td>\n"; } if ($count % 5 == 0) { echo "</tr><tr>\n"; } if ($count % 20 == 0) { echo "</tr></table>\n"; } ?>



Maar hij doet het niet. Hij leest wel allemaal <td> uit maar geen </tr> en </table> 's

Wat doe ik niet goed en wat moet er anders.

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 07:27

PowerSp00n

There is no spoon

Ik heb dat een tijd geleden gewoon gedaan door een getalletje steeds op te tellen. Als deze 4 is zet je er een </tr><tr> neer en reset je het countertje weer. Was toen nog niet al te goed in PHP maar het werkt nog altijd perfect ;). Zo kun je het met die 20 ook doen natuurlijk.

[edit] Moeten die dingen trouwens niet in de loop staan?

Verwijderd

Topicstarter
Op vrijdag 28 juni 2002 13:44 schreef PowerSp00n het volgende:
Ik heb dat een tijd geleden gewoon gedaan door een getalletje steeds op te tellen. Als deze 4 is zet je er een </tr><tr> neer en reset je het countertje weer. Was toen nog niet al te goed in PHP maar het werkt nog altijd perfect ;). Zo kun je het met die 20 ook doen natuurlijk.

[edit] Moeten die dingen trouwens niet in de loop staan?
<?
if ($count % 5 == 0) {
echo "</tr><tr>\n";
}
if ($count % 20 == 0) {
echo "</tr></table>\n";
}
?>

dat was ook mijn bedoeling maar werkt dus niet goed

Verwijderd

waarom gebruik je $count als je $i al hebt?
PHP:
1
<?    $cols = 5;    for($i = 0; $i < 20; $i++)    {        if($i % $cols == 0)            print "<tr>";        print "<td>$i</td>";        if(($i + 1) % $cols == 0)            print "</tr>";        }?>

Verwijderd

Topicstarter
PHP:
1
<?echo "<table>\n";echo "<tr>\n";$open = opendir("pictures/lasershow"); $i=0; while ($bestanden = readdir ($open) ) { if(($bestanden<>".") AND ($bestanden<>"..") AND ($bestanden<>"thumbnails") AND (substr($bestanden,-3)=="jpg")){   $bestandslijst[$i] = $bestanden;   $i++; } } closedir($open); sort($bestandslijst); for ($i=0;$i<count($bestandslijst);$i++) {   echo "<td>\n";  echo $bestandslijst[$i] . "</td>\n"; } if ($i % 5 == 0) { echo "</tr><tr>\n"; } if ($i % 20 == 0) {echo "</tr></table>\n"; }?>

werkt helaas ook niet ...

Verwijderd

Topicstarter
Op vrijdag 28 juni 2002 13:48 schreef Nokia het volgende:
waarom gebruik je $count als je $i al hebt?
PHP:
1
<?    $cols = 5;    for($i = 0; $i < 20; $i++)    {        if($i % $cols == 0)            print "<tr>";        print "<td>$i</td>";        if(($i + 1) % $cols == 0)            print "</tr>";        }?>

Hoe zit ik dit stukje in de array dan?

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

PHP:
1
<?if ((($i % 5) == 0) &amp;&amp; ($i !=0)) {echo "</tr><tr>\n"; }?>

EDIT:

Nokia je hebt gelijk, bovenstaande code ff gewijzigd! :*

Sundown Circus


Verwijderd

Op vrijdag 28 juni 2002 14:01 schreef RedRose het volgende:
PHP:
1
<?if (($i % 5) == 0 {echo "</tr><tr>\n"; }?>
dan sluit je dus meteen een <tr> als je nog niet eens begonnen bent...

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Probeer dit eens:
PHP:
1
<?echo "<table>\n";echo "<tr>\n";$open = opendir("pictures/lasershow"); while ($bestanden = readdir ($open) ) {   if (($bestanden != ".") AND ($bestanden != "..") AND ($bestanden != "thumbnails") AND (substr($bestanden,-3)=="jpg")){       $bestandslijst[] = $bestanden;  } } closedir($open); sort($bestandslijst); for ($i=0;$i<count($bestandslijst);$i++) {  echo "<td>\n";  echo $bestandslijst[$i] . "</td>\n";   if ($i % 5 == 0) {     echo "</tr><tr>\n";   }   if ($i % 20 == 0) {    echo "</tr></table>\n";  }}?>

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
heb nu dit:
PHP:
1
<?echo "<table>\n";echo "<tr>\n";$open = opendir("pictures/lasershow"); $i=0; while ($bestanden = readdir ($open) ) { if(($bestanden<>".") AND ($bestanden<>"..") AND ($bestanden<>"thumbnails") AND (substr($bestanden,-3)=="jpg")){   $bestandslijst[$i] = $bestanden;   $i++; } } closedir($open); sort($bestandslijst);for ($i=0;$i<count($bestandslijst);$i++) { $count++;   echo "<td>\n";   echo $bestandslijst[$i] . "</td>\n"; if ($count % 4 == 0) { echo "</tr><tr>\n"; } if ($count % 20 == 0) { echo "</tr></table>\n"; } }?> ?>

en het werkt thx

wil nu alleen dat er een pagenav na % 20 == 0 komt. Dus dat er 20 entry's uit de array per page worden uitgelezen.

Is dit mogelijk?

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Op vrijdag 28 juni 2002 14:13 schreef Ketje het volgende:
Is dit mogelijk?
jep

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Nog even iets anders, quote'tje uit de lieve manual:
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}

/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
echo "$file\n";
}
Hoe vaker naar je code kijk hoe meer brakke constructies ik tegenkom. Zo is $i in de while onnodig.
$bestandslijst[] = $bestanden doet hetzelfde.
Pagina: 1