Toon posts:

[php] laatste deel array niet goed uitgelezen

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
hallo,

met het onderstaande stukje code lees ik een dir uit in een array. Per page lees ik dan een stukje van deze array uit. Het werkt dus met een pagenav systeempje.
PHP:
1
<?// Configuratie$dir = "pictures/lasershow"; // dir waar de foto's in staan$kolom = "4"; // aantal kolommen$rij = "5"; // aantal rijen$tabel = ($kolom * $rij); //totaal aantal cellen in tabel$file_nr = ($tabel * $page); // startplek in de array die uitgelezen moet worden?><html><head><title>Array Test</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000"><?// dir lezen en bestanden in array plaatsen$open = opendir($dir); $i=0;while (false !== ($bestanden = readdir($open))) {if(($bestanden<>".") AND ($bestanden<>"..") AND ($bestanden<>"thumbnails") AND (substr($bestanden,-3)=="jpg")){   $bestandslijst[$i] = $bestanden;   $i++; } } closedir($open); // totaal aantal entry's in array$aantalEntries = count($bestandslijst);// page navigatie systeem$amountpages = ceil( $aantalEntries / $tabel ); $int1 = 0; if (!$page) {     $page = "0"; } while ($int1 < $amountpages) {     $int2 = $int1 + 1;     if ($int1 == $page)     {         echo "<font color=\"black\">[$int2] </font>";     }     else     {         echo "<font color=\"black\">[<A HREF=\"$PHP_SELF?page=$int1\">$int2</A>] </font>";     }     $int1++; }echo "<br>\n";echo "<br>\n";// tabel opbouwenecho "<table border=\"1\">\n";echo "<tr>\n";// array alfabetisch sorterensort($bestandslijst);// begin for lusfor ($i=$file_nr;$i<count($bestandslijst);$i++) {   $count++; $td++;   echo "<td>\n";   echo $bestandslijst[$i] . "</td>\n";   if ($td == $kolom){ echo "</tr>\n<tr>\n"; $td = 0; }   if ($count == $tabel) { echo "</tr></table>\n";   break; }   }echo "<br>\n";  // page navigatie systeem$amountpages = ceil( $aantalEntries / $tabel ); $int1 = 0; if (!$page) {     $page = "0"; } while ($int1 < $amountpages) {     $int2 = $int1 + 1;     if ($int1 == $page)     {         echo "<font color=\"black\">[$int2] </font>";     }     else     {         echo "<font color=\"black\">[<A HREF=\"$PHP_SELF?page=$int1\">$int2</A>] </font>";     }     $int1++; }?> </body></html>?>

Alle pagina's behalve de laatste worden goed uitgelezen. Bij de laatste verschijnt de tabel onder de onderste pagenav systeem ( zie http://www.danspaleis.nl/arraytest3.php?page=5 voor wat ik precies bedoel met deze wazige beschrijving ).

hoe kan ik dit verhelpen?

  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Je opent wel een tabel (<table>), maar je sluit hem nergens (</table>). Dit geldt trouwens ook voor je tr

Verwijderd

Topicstarter
Op vrijdag 28 juni 2002 19:26 schreef Arnaud het volgende:
Je opent wel een tabel (<table>), maar je sluit hem nergens (</table>). Dit geldt trouwens ook voor je tr
PHP:
1
<?// begin for lusfor ($i=$file_nr;$i<count($bestandslijst);$i++) {   $count++; $td++;   echo "<td>\n";   echo $bestandslijst[$i] . "</td>\n";// hier sluit die de kolom af dus hij plaats een <tr>// wanneer het aantal <td> 4 is   if ($td == $kolom){ echo "</tr>\n<tr>\n"; $td = 0; }   // hier sluit die de tabel af dus hij plaats een </table>// wanneer het aantal 4 kolommen en 5 rijen is  if ($count == $tabel) { echo "</tr></table>\n";   break; } ?>

  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
En kijk nu eens of hij dat doet bij pagina 4 (Ja) en of hij het doet bij de laatste pagina (Nee)

Verwijderd

Topicstarter
ja dat zag ik daarna

ik weet misschien een oplossing.

in php is && "AND" wat is ook alweer "OR"

Verwijderd

Op vrijdag 28 juni 2002 19:51 schreef Ketje het volgende:
ja dat zag ik daarna

ik weet misschien een oplossing.

in php is && "AND" wat is ook alweer "OR"
Volgens mij "|"

Verwijderd

Topicstarter
PHP:
1
<?if ($count == $tabel) || ($bestandslijst[$i] == $aantalEntries) { echo "</tr></table>\n"; }?>

geeft deze error:

Parse error: parse error, unexpected T_BOOLEAN_OR

  • Arnaud
  • Registratie: Mei 2000
  • Laatst online: 02-08 18:07
Ik zie welke kant je opwilt, maar zelfs als je je OR-statement goed krijgt gaat dit nog geen goed resultaat opleveren.

Stel je maar eens voor wat er gebeurt als deze twee statements allebei TRUE opleveren:

if ($td == $kolom){ echo "</tr>\n<tr>\n"; $td = 0; }
if ($count == $tabel) { echo "</tr></table>\n"; break; }

Volgens mij krijg je dan een lege tr.
Je controle op einde tr en einde table zul je dus beter moeten schrijven!

Succes

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:35
code:
1
OR


code:
1
||

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
Op vrijdag 28 juni 2002 20:02 schreef Ketje het volgende:
PHP:
1
<?if ($count == $tabel) || ($bestandslijst[$i] == $aantalEntries) { echo "</tr></table>\n"; }?>

geeft deze error:

Parse error: parse error, unexpected T_BOOLEAN_OR
Moet natuurlijk zijn:
PHP:
1
<?if (($count == $tabel) || ($bestandslijst[$i] == $aantalEntries)) { echo "</tr></table>\n"; }?>

*let op de extra haakjes*

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 28 juni 2002 20:02 schreef Ketje het volgende:
PHP:
1
<?if ($count == $tabel) || ($bestandslijst[$i] == $aantalEntries) { echo "</tr></table>\n"; }?>

geeft deze error:

Parse error: parse error, unexpected T_BOOLEAN_OR
kijk nou eens goed
dit is gewoon basic debuggen en daarvoor kan je in de P&W faq terecht

Doet iets met Cloud (MS/IBM)


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:35
Ketje:
PHP:
1
<?if ($count == $tabel) || ($bestandslijst[$i] == $aantalEntries) { echo "</tr></table>\n"; }?>

geeft deze error:

Parse error: parse error, unexpected T_BOOLEAN_OR
>>>>
PHP:
1
<?if(($count == $tabel) || ($bestandslijst[$i] == $aantalEntries)){  echo "</tr></table>\n";}?>

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

na deze toevoeging van ddc :* alsnog dicht

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.