Autor | Zpráva | ||
---|---|---|---|
michal.fiurasek Profil |
Zdravím, přes kód níže tahám z adresáře fotky a potřeboval bych je vyechovat do tabulky o 3 sloupcích, ale nevím jak, předpokládám, že to pujde nějak přes while nebo for, ale nevím jak, všechno co sem našel je na mysql, ale jak udělat tohle to nevím....
$dir = '/var/www/f4ki_gallery/img/large/'.$folder; if ($handle = opendir($dir)) { while ($file = readdir($handle)) { $row[count($row)] = $file; } closedir($handle); sort($row); } reset($row); while (list($key, $val) = each($row)) { if ($val != '.' && $val != '..') { if (is_dir($val)) { } } } reset($row); while (list($key, $val) = each($row)) { if ($val != '.' && $val != '..') { if (!is_dir($val)) { echo '<a href="../img/large/'.$folder.'/'.$val.'" title="'.$folder.' - '.$val.'" alt="'.$folder.' - '.$val.'" rel="'.$folder.'"><img src="../img/small/'.$folder.'/'.$val.'" /></a>'; } } } |
||
Keeehi Profil |
#2 · Zasláno: 10. 7. 2012, 15:12:20
|
||
michal.fiurasek Profil |
#3 · Zasláno: 10. 7. 2012, 15:49:47
No nevím ... použil jsem ten kód, do tabulky to sice vypíše, ale místo toho aby to nasázelo 3 vypisy vedle sebe, tak to nasází všechny pod sebe a dva volné sloupce...
define ('COLS', 3); $dir = '/var/www/f4ki_gallery/img/large/'.$folder; if ($handle = opendir($dir)) { while ($file = readdir($handle)) { $row[count($row)] = $file; } closedir($handle); sort($row); } reset($row); while (list($key, $val) = each($row)) { if ($val != '.' && $val != '..') { if (is_dir($val)) { } } } reset($row); while (list($key, $val) = each($row)) { if ($val != '.' && $val != '..') { if (!is_dir($val)) { //echo '<a href="../img/large/'.$folder.'/'.$val.'" title="'.$folder.' - '.$val.'" alt="'.$folder.' - '.$val.'" rel="'.$folder.'"><img src="../img/small/'.$folder.'/'.$val.'" /></a>'; } for ($i=0; $i<1; $i++) { if ($i%COLS == 0) { echo "<tr>"; echo "<td>".$val."</td>"; } if ($i%COLS == COLS-1) { echo "</tr>"; } } if ($i != COLS-1) { while ($i++ % COLS != 0) { echo "<td> </td>"; } echo "</tr>\n"; } } } } |
||
Keeehi Profil |
#4 · Zasláno: 10. 7. 2012, 16:11:41
To je proto, že jsi naprosto nepochopil, jak ten kód funguje.
define ('COLS', 3); $dir = '/var/www/f4ki_gallery/img/large/'.$folder; $content = scandir($dir); $i=0; foreach ($content as $file) { if (is_file($file)) { if ($i%COLS == 0) { echo "<tr>"; } echo "<td><a href=\"../img/large/$folder/$file\" title=\"$folder - $file\" alt=\"$folder - $file\" rel=\"$folder\"><img src=\"../img/small/$folder/$file\" /></a></td>"; if ($i%COLS == COLS-1) { echo "</tr>\n"; } $i++; } } if ($i != COLS-1) { while ($i++ % COLS != 0) { echo "<td> </td>"; } echo "</tr>\n"; } |
||
michal.fiurasek Profil |
#5 · Zasláno: 10. 7. 2012, 16:41:51
to je asi pravda, ale to je tím, že sem nikdy se soubory v php nepracoval, kdykoliv předtím jsem všechno tahal přes mysql...
díky za ochotu... |
||
michal.fiurasek Profil |
#6 · Zasláno: 11. 7. 2012, 10:20:00
Tak jo, trochu jsem zapřemýšlel a dal jsem dohromady toto, ale i tak nevím kde mám chybu, tam bude asi jenom nějaká blbost, avšak když kód spustím tak místo toho aby to vypsalo 5 souborů do 3 sloupců tak to vypíše 5 souboru do každého ze tří sloupců - každý sloupec má 5 řádků... sem asi blbý, ale nevím prostě...
define("cols", 3); $dir = '/var/www/f4ki_gallery/img/large/Album'; if ($handle = opendir($dir)) { while ($file = readdir($handle)) { $row[count($row)] = $file; } closedir($handle); sort($row); } reset($row); while (list($key, $file) = each($row)) { if ($file != '.' && $file != '..') { if (!is_dir($file)) { for ($i = 0; $i < cols; $i++) { if ($i%cols == 0) echo "<tr>"; echo "<td>".($i+1).". ".$file."</td>"; if ($i%cols == cols-1) echo "</tr>"; } if ($i != cols-1) { while ($i++%cols != 0) { echo "<td> </td>"; } echo "<tr>"; } } } } |
||
Ugo Profil |
#7 · Zasláno: 11. 7. 2012, 11:23:07
Keeehi:
chytrej kód, tohle by mě nenapadlo :) michal.fiurasek: ta konstanta malýma mě úplně ničí. Všimni si že máš o cyklus víc než Keeehi. A špatně pracuješ s $i, mimoto bych zůstal u scandir, je s ním ta práce přecijen lehčí a tedy i přehlednější. Trik v tom kódu je, že uděláš nekompletní tabulku kterou potom doplňíš, tedy pro každý záznam jen jeden průchod a zaznamenat si jej ($i++) |
||
michal.fiurasek Profil |
#8 · Zasláno: 11. 7. 2012, 11:46:27
Ugo:
Dobře mám se ještě hodně co učit, asi jsem pochopil kde jsou chyby... Keeehi: Děkuji za ukázku kódu funguje pěkně, jenom nevím proč když tam je if (is_file($file)) {... tak to nefunguje, ale i když tam dám if (!is_dir($file)) {.. tak to funguje, ve složce jsou obrázky...
Nicméně i tak díky oběma... |
||
Časová prodleva: 12 let
|
0