[PHP] Directorie uitlezen vs tabel afmaken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mensen,

Ik ben bezig om icoontjes automatisch te laten uitlezen met directorie, de bedoeling is dus dat ik gewoon een
directorie aanmaak, hier een zooi icoontjes in gooi en dat deze automatisch op het scherm verschijnen.

Dit lukt allemaal, echter heb ik een probleem:

De bedoeling is dat deze icoontjes netjes in een tabel geplaatst worden met een variabel aantal kollommen.
$col = 5; //aantal kollommen

Nu staan er bijvoorbeeld 6 plaatjes in een directorie, wat er nu gebeurd is dat de tabel niet afgemaakt word,
er komt dus netjes een rij van 6, vervolgens eentje van 1 i.p.v. 5 (zie ook http://msn.xanuex.nl/test2.php)

en ook andersom is het geval, wanneer er 3 icoontjes instaan wordt de tabel niet met 2 lege cellen aangevuld.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<html>
<body>

<table border="1" cellpadding="0" cellspacing="0" width="200">
<?php

$col   = 5;       // Aantal kollommen
$dir   = "smileys"; // Eerste directorie


function get_images($file, $dir) {

  $handle2 = opendir($dir."/".$file);
  $var     = 1;

  while(false!==($image = readdir($handle2))) {

    if($image != "." && $image != "..") {
  //  echo "$image<br>";
      echo "  <td>$var</td>\n";
      $var++;
    } 
    
    if($var == 6) {
      echo "</tr>\n <tr>\n";
      $var = 1;
    }

  }
  
  for($x=$var; $x<=5; $x++) { 
    if($var != 1) {
      echo "  <td>&nbsp;</td>\n"; 
    }
  }


}



$handle=opendir($dir);

while(false!==($file = readdir($handle))) {

  if($file != "." && $file != "..") {

    echo " <tr>\n  <td colspan=\"$col\"><b>$file</b></td>\n </tr>\n <tr>\n  <td colspan=\"$col\">&nbsp;</td>\n </tr>\n <tr>\n";
    get_images($file, $dir);
  }

}

closedir($handle);
?>

</table>

</body>
</table>

Het probleem zit hem in de WHILE-lus, is er iemand die een mogelijke oplossing ziet ?
Ik hoop dat het een beetje duidelijk is,

alvast bedankt
- Marcel

-edit: code veranderd en tussen php tags geplaatst

[ Voor 77% gewijzigd door Verwijderd op 10-08-2003 20:11 ]


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
gewoon een counter mee laten lopen die bijhoudt met de hoevelste cel hij bezig is en na die while lus nog een forloopje doen

PHP:
1
2
3
4
for ($x=$counter; $x<=5; $x++)
{
  echo "<td></td>\n";
}


zoiets

a.u.b. je eigen code voortaan ook ff tussen [php] tags te zetten, dat leest wat fijner :)

[ Voor 7% gewijzigd door marty op 10-08-2003 19:28 . Reden: typo ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wist niet dat je die php tags kon gebruiken dus mijn excuses daarvoor (mag wel wat vriendelijke gevraagd worden naar mijn mening maar goed...)

iig bedankt voor de reactie ben al een stuk verder.

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
hehe als het echt niet lukt wil ik wel een deel uit me icoon change scriptje posten dan kun je zien hoe ik het opgelost heb

Icons are overrated


Acties:
  • 0 Henk 'm!

Verwijderd

Behandel je integers alsjeblieft als integers en niet als strings :/

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Helmet,
ik denk dat ik er bijna uit ben dus ik denk niet dat het nodig is :)

Remboooo,
ff in het nederlands graag ;)
kan je laten zien aan de hand van mijn code wat je bedoeld ?

-Marcel

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 augustus 2003 @ 20:05:
Remboooo,
ff in het nederlands graag ;)
kan je laten zien aan de hand van mijn code wat je bedoeld ?
"1" != 1

Bedoelt hij te zeggen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ow.. sorry :P

zo beter ??? (zie code)

kan iemand me vertellen of ik die functie variabelen zo goed heb?
niet overbodig etc

ik werk zelf niet zo vaak met die functies dus vandaar...

[ Voor 117% gewijzigd door Verwijderd op 10-08-2003 20:21 ]


Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
xanuex schreef:
-Marcel
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je perse zoiets wilt kun je daar je signature voor gebruiken

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wat zijn we weer tollerant
modbreak: dit heeft niets met tolerantie te maken ofzo. Het is gewoon een quote uit de FAQ. Als je iedere keer je naam onder je posts zet, leest dat een beetje irritant. Vandaar.

[ Voor 81% gewijzigd door whoami op 11-08-2003 12:04 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Waar je ook rekening mee moet houden is dat een lege cel, oftwel <td></td> er anders uitziet dan <td> </td>.

Bij de eerste krijg je namelijk geen borders in sommige browsers.

Dat laatste loopje is trouwens nodig:
Je hebt 6 foto's, daar gaan er dus eerst 5 vanaf(=rij1), nu heb je er nog 1 over.
Als 1<5 doe je 5-1=4
oftwel de colspan is dus gewoon 4.

Verder kan dit natuurlijk ook niet:
PHP:
1
if($var == 6) {

Dat moet zijn $var>=$col
Pagina: 1