Map uitlezen en files sorteren
Wat ik heb om een directory uit te lezen is dit:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if ($handle = opendir('/pics')) {
while (false !== ($file = readdir($handle))) {
sort($file);
if ($file != "." && $file != "..") {
echo '<option value="'.$file.'"'; if ($file == $list['pic']) { echo ' selected'; } echo '>'.$file.'</option>';
}
}
closedir($handle);
}
while (false !== ($file = readdir($handle))) {
sort($file);
if ($file != "." && $file != "..") {
echo '<option value="'.$file.'"'; if ($file == $list['pic']) { echo ' selected'; } echo '>'.$file.'</option>';
}
}
closedir($handle);
}
Nu weet ik dat je de bestanden kan uitlezen op volgorde met case() maar wanneer je dat wilt doen dan moet je de bestanden in een array gooien, en op dat moment gaat het bij mij mis. Ik wil namelijk de onderstaande code gebruiken, leest de map goed uit maar hij selecteert het bestand niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
$handle = opendir('/pics');
while(false!==($file = readdir($handle))) {
if($file != "." && $file != ".."){
$files[]=$file;
}
}
if($files) {
sort($files);
foreach ($files as $file)
echo '<option value="'.$file.'">'.$file.'</option>';
}
closedir($handle);
while(false!==($file = readdir($handle))) {
if($file != "." && $file != ".."){
$files[]=$file;
}
}
if($files) {
sort($files);
foreach ($files as $file)
echo '<option value="'.$file.'">'.$file.'</option>';
}
closedir($handle);
Met hij selecteert het bestand niet bedoel ik de regel
Code (php)
1
echo '<option value="'.$file.'"'; if ($file == $list['pic']) { echo ' selected'; } echo '>'.$file.'</option>'; ?>
$list['pic'] haalt dus de bestandsnaam uit de database maar ik krijg het niet voor elkaar deze in het bovenstaande stukje code te verwerken.
Kan iemand mij een oplossing bieden want het lijkt mij niet onmogelijk alleen ik krijg het gewoon niet voor elkaar, alleen in het eerste voorbeeld lukt het dus wel maar die sorteert de bestanden niet. Het gaat er om dat de bestanden gesorteert weergegeven worden in de selectielijst en dat het bestandsnaam welke in de database staat wanneer deze overeenkomst met het bestand uit de directory dat dan de select option geselecteert is.
Alvast bedankt!
Gewijzigd op 31/03/2006 22:50:00 door Erik
Echo die $list['pic'] eens om te kijken of en wat er in zit.
Op een of andere mannier lukt het niet om 'm te echo'en en zo te kijken of $list['pic'] gelijk is aan $file.
Vreemd? Of doe ik gewoon echt iets wat niet kan...
Met welk scriptje? Post 'm eens.
De scripts staan hier boven vermeld, de eerste (helemaal bovenaan) toont de bestanden goed en je kunt met de $list['pic']; de juiste afbeelding selecteren maar in het script daar onder kan ik de afbeeldingen goed sorteren maar dan werkt $list['pic']; niet meer om de geselecteerde afbeelding 'geselecteerd' te maken.
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$handle = opendir('/pics');
while(false!==($file = readdir($handle)))
{
if($file != "." && $file != "..")
{
$files[]=$file;
}
}
if($files)
{
sort($files);
foreach ($files as $file)
{
echo '<option value="' . $file . '"';
if($file == $list['pic'])
{
echo ' selected';
}
echo '>' . $file . '</option>';
}
}
closedir($handle);
?>
$handle = opendir('/pics');
while(false!==($file = readdir($handle)))
{
if($file != "." && $file != "..")
{
$files[]=$file;
}
}
if($files)
{
sort($files);
foreach ($files as $file)
{
echo '<option value="' . $file . '"';
if($file == $list['pic'])
{
echo ' selected';
}
echo '>' . $file . '</option>';
}
}
closedir($handle);
?>
Mag ik je hartelijk bedanken voor je hulp.
Nou het is zelfs zo simpel, en ga nou niet jezelf gelijk voor je bol slaan, maar je hebt in je tweede script dat stukje van dat 'if(....) en dat selected' niet staan.