login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fotoalbum Next/Back

Offline BigBug - 01/03/2008 14:56
Avatar van BigBugPHP expert Ik heb op het moment een fotoalbum dat de foto's uit een dir leest. Ik heb de opdracht gekregen er vorige/volgende pijlen bij te maken. Voor de volgende en de vorige foto's uit het album. Is dit mogelijk met dirs en zoja hoe doe ik dat?

Een andere optie:
Alle foto's in SQL db dumpen, wat ik in principe fijner vindt, maar hoe doe ik het dan met vorige en vorige. Want ik kan niet id+1 en id-1 doen, omdat er ook foto's verwijderd kunnen worden.

Wat kost het minste tijd?  
Bug.

11 antwoorden

Gesponsorde links
Offline yetti4 - 01/03/2008 15:07
Avatar van yetti4 JS interesse je moet links naar de images in de db dumpen
en bij het uithalen dump je alles in een array en bij volgende, pak je gewoon foto[$i+1]
Offline BigBug - 01/03/2008 15:24
Avatar van BigBug PHP expert Opzich zit er wel wat in ja. Kun je misschien iets meer toelichting qua scripting geven hoe ik alle links van de foto's uit één bepaald album in één klap in een array gooi?
Offline CDNC - 01/03/2008 15:27 (laatste wijziging 01/03/2008 15:28)
Avatar van CDNC PHP ver gevorderde Dir uitlezen, fileNames opslagen in een array. iedere foto heeft nu een ID (index van de array), als je dan werkt met iets in de vorm van:
  1. echo getPhoto($_GET['pid']);


vorige/volgende is gewoon dan $_GET['pid'] +/- 1 wel kijken of je niet onder 0 gaat of over de aantal elementen in het array
Offline BigBug - 01/03/2008 15:29 (laatste wijziging 01/03/2008 15:51)
Avatar van BigBug PHP expert Ik houd het inderdaad het liefts bij uitlezen nu, omdat dat systeem volledig werkt en ik dan niet alles hoef te rescripten & integreren. Het idee klinkt prima, ga ik proberen!

Ok, ik ben nu bezig en het lijkt wel enigsinds te werken maar hoe krijg ik elementen bij een array.. Met array_push(); krijg ik errors ?

  1. <?
  2. $picture_array = array();
  3. while (false !== ($file = readdir($folder)))
  4. {
  5. if($file !== '.' && $file !== '..')
  6. {
  7. $exp = explode('.', $file);
  8. if($exp[1] == 'jpg' or $exp[1] == 'gif' or $exp[1] == 'png' or $exp[1] == 'jpeg' or $exp[1] == 'JPEG' or $exp[1] == 'PNG' or $exp[1] == 'GIF' or $exp[1] == 'JPG')
  9. {
  10. $tijdelijk = $exp[0] . $exp[1];
  11. array_push($picure_array, "".$tijdelijk)."";
  12. }
  13. }
  14. }
  15. echo $picture_array;
Dit werkt niet  
Offline yetti4 - 01/03/2008 15:52 (laatste wijziging 01/03/2008 16:01)
Avatar van yetti4 JS interesse dit is hem:

$result = ("SELECT * FROM example");
while($row = mysql_fetch_array($result))
{
$foto[] = $row['link'];
}

nu heb je foto[0] als je eerste foto;
als ik jou was zou ik dat array in javascript storten, dan hoef je niet elke keer te posten. en dan doe je bij volgende img.src="foto[i++]"
Offline BigBug - 01/03/2008 16:00 (laatste wijziging 01/03/2008 16:04)
Avatar van BigBug PHP expert Ik heb alleen geen kennis van javascript, dus ik houd het maar bij php 

En aan die query heb ik nu niks, aangezien ik al een bestaand album heb die een map uitleest.

@Yetti, ik stel je inzet met queries zeer op prijs maar indien mogelijk houd ik het liefst de dirs aan, aangezien het een immens fotoboek is met meerdere beheerders met categorieën die weer subcategorieën kunnen aamaken en daar weer meerdere albums in kunnen maken. Ik wil het gewoon vanuit het uitlezen van de dir houden aangezien dat ook mogelijk is  
Offline yetti4 - 01/03/2008 16:05 (laatste wijziging 01/03/2008 16:05)
Avatar van yetti4 JS interesse javascript array van php array maken:

$temp = join(',', $foto);
<script type="text/javascript">
jsfoto = new Array(<? echo($temp) ?>);
</script>

dat is het 

daar kan ik je niet helpen 
Offline BigBug - 01/03/2008 16:08 (laatste wijziging 01/03/2008 16:23)
Avatar van BigBug PHP expert Hm, het ziet er wel leuk uit alleen ik ben echt een leek met JS. Zou je het voor mij kunnen integreren in hetvolgende stukje en dan op plaats X:
  1. <?
  2. while (false !== ($file = readdir($folder)))
  3. {
  4. if($file !== '.' && $file !== '..')
  5. {
  6. $exp = explode('.', $file);
  7. if($exp[1] == 'jpg' or $exp[1] == 'gif' or $exp[1] == 'png' or $exp[1] == 'jpeg' or $exp[1] == 'JPEG' or $exp[1] == 'PNG' or $exp[1] == 'GIF' or $exp[1] == 'JPG')
  8. {
  9. X
  10. }
  11. }
  12. }
EDIT ik lees net dat je dat deel van PHP misschien niet snapt.. Dat maakt het lastiger .. 

EDIT 2 heb je even toegevoegd op msn

EDIT 3 Ik ben er al achter wat er fout gaat wat betreft array_push(); De eerste waarde wordt wel in de array gesodeknikkert maar de rest kan niet omdat er al wat in de array staat.

EDIT 4 Het is me gelukt 
Door $picture_array[] = $exp[0] . $exp[1]; in de while loop te gooien pompte die alle alles in $picture_array. Ik denk dat het nu verder wel lukt. Ik laat het topic nog even open mochten er nog meer probs zich voordoen.

Offline Koen - 01/03/2008 16:51
Avatar van Koen PHP expert
  1. $exp = explode('.', $file);
  2. $exp = array_pop($exp);


Dan haal je de laatste waarde uit de array, want wat als de afbeelding blaat.test.jpg heet?
Offline BigBug - 01/03/2008 19:06
Avatar van BigBug PHP expert Bij het uploaden mag er geen punt in de naam zitten 

Anders kom ik zoiezo in de knoei omdat ik dan $exp[0] . $exp[1] . $exp[2] nodig heb.
Offline CDNC - 01/03/2008 21:46
Avatar van CDNC PHP ver gevorderde PHP.net: implode

en waarom zou je het terug samen voegen? de naam heb je al in het array zitten
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s