Lokomotive Posted April 11, 2004 Report Share Posted April 11, 2004 (edited) Nu nestrādā tā lieta! Es pacentos uzrakstīt visu sakarīgi - tāpēc nevajadzētu būt nekādu problēmu ar nesaprašanu. Taču ja tomēr doma nav saprotama - rakstiet! Doma tāda - skripts nolasa visas bildes, kas atrodas direktorijā un savieto tās pa trīs. Skriptam būtu jāizvada šāds HTML: (piemērs ar 4 bildēm direktorijā) <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> <td width="150px" height="100px"><img src="$pic_patch"></td> <td width="150px" height="100px"><img src="$pic_patch"></td> </tr> <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> <td colspan="2"></td> </tr> Respektīvi bildes tiek izdrukāras šādi: X X X X - - Skripts, kuru ar mokām uzmeistaroju izskatās šādi: if(isset($_REQUEST['show'])){ $dir = ($_REQUEST['show']); }else{ $dir ="2003"; } if ($direktorija = opendir('data/'.$dir)) { while (false !== ($faila_nos = readdir($direktorija))) { if ($faila_nos != "." && $faila_nos != ".." && $faila_nos != "comments") { print data($faila_nos, $dir); } } closedir($direktorija); }else{ echo "tehniskas problēmas :("; } function data($faila_nos, $dir) { //drukājam HTML $pic_patch = 'data/'.$dir.'/'.$faila_nos; $counter = 0; echo "<tr>\n"; if(($counter % 3) == 0){ $counter++; $pic = "<img src=\"$pic_patch\">\n"; echo "<td width=\"150px\" height=\"100px\">".$pic."</td>\n"; echo "</tr>\n"; } if(($counter % 3) != 0){ echo "<td colspan=\"".(3 - ($counter % 3))."\"></td>\n"; } echo "</tr>\n"; } return $data; Problēma tāda, ka sktipts izdrukā invalīdu HTML, apmēram šādi: <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> </tr> <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> </tr> <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> </tr> <tr> <td width="150px" height="100px"><img src="$pic_patch"></td> </tr> Respektīvi, bildes izskatās šādi: X X X X Kur esmu nokļūdījies? Man liekas, ka $pic_patch ir Array. Vai tad ne? Edited April 11, 2004 by Lokomotive Link to comment Share on other sites More sharing options...
Aleksejs Posted April 11, 2004 Report Share Posted April 11, 2004 counter mainīgais vienmēr tiek inicializēts, kā nulle, pie funkcijas izsaukuma. Apskaties, kā ar to cīnijās Gacha: http://php.lv/f/index.php?showtopic=1004 Link to comment Share on other sites More sharing options...
Lokomotive Posted April 11, 2004 Author Report Share Posted April 11, 2004 Esmu ticis skaidrībā tik tālu (nu vismaz man tā šķiet), ka sapratu, ka count vispār nesaņem Masīvu (kuru tad nu varētu skaitīt).. Ja es saīsinu līdz šādām rindiņām, lai pārbaudītu kas tur vispār ir, tad... function data($faila_nos, $dir) { $pic_path = 'data/foto/'.$dir.'/'.$faila_nos; // šis ir ceļš (path) līdz failam foreach($pic_path as $test){ print_r ($test); die; } tad seko Browsera Warnings " Invalid argument supplied for foreach() ". Nevaru saprast kāpēc Invalid arguments !!? Link to comment Share on other sites More sharing options...
Aleksejs Posted April 11, 2004 Report Share Posted April 11, 2004 Nē, tur nav tā problēma. $pic_path nav masīvs, bet gan string Link to comment Share on other sites More sharing options...
Vistu Zaglis Posted April 11, 2004 Report Share Posted April 11, 2004 (edited) Banāls, bet efektīvs veids, kā šito štelli darīt: $max = 3; //vai cik jau tu kolonnas gribi, šito var $max vietā ierakstīt kodā $cnt = 0; $direktorija = opendir("kur_jau_tev_tur"); while (false !== ($file = readdir($direktorija))) { if ($file != "." && $file != ".." && $file != ".htaccess") { if ($cnt == 0) { echo "<tr>"; } echo "<td>"; -- tad te tu gruzī bildi no masīva -- echo "</td>"; $cnt = $cnt+1; if ($cnt == $max) { echo "</tr>"; $cnt = 0; } } } beidzam ciklu. Pārējo tak pats saķīmiķosi, ne? :) Edited April 11, 2004 by Vistu Zaglis Link to comment Share on other sites More sharing options...
Lokomotive Posted April 12, 2004 Author Report Share Posted April 12, 2004 (edited) Paldies Shulc! Es gan tevis rakstīto skriptu neizmantoju, taču tikko kā to ieraudzīju - galvā iešāvās doma (tā liktenīgā) :) Tagad viss strādā. Vainīga bij redze ;] Starp citu, cik ilgi tu veidosi savas lapas jauno dizainu? Es katru dienu klauvējos pie tavas lapas aizslēgtām durvīm, mhee. Edited April 12, 2004 by Lokomotive Link to comment Share on other sites More sharing options...
Recommended Posts