Avatar billede xtr0 Nybegynder
25. juni 2006 - 15:26 Der er 3 kommentarer og
1 løsning

Næste funktion til array (Billeder)

Hej eksperten.

Jeg har lige nu et meget interresant problem jeg skal bruge løsning på til et galleri på en hjemmeside.

Man kan oprette mapper i galleriet, og hver billede man uploader får sit eget id i databasen, problemet er bare at flere mennesker kan uploade billeder så rækkefølgen bliver "ulogisk", derfor har jeg gjort så jeg trækker et array ud med id'erne i denne form:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )

1,2,3,4 og 6 er id numre på billederne, mit problem ligenu er hvordan man skal "bladre" igennem dem. Altså når man kigger på $id=4 så skal man kunne regne ud at id nr. 3 er id'et inden og id. nr. 6 er det næste i galleriet.

Kan man gøre dette smart?
Avatar billede hmortensen Nybegynder
25. juni 2006 - 15:37 #1
Du kan prøve kigge på prev() og next().
Avatar billede xtr0 Nybegynder
25. juni 2006 - 15:42 #2
Jeg har kigget på de to funktioner men må indrømme at jeg er kørt lidt død i det, eftersom den selv skal finde ud af hvor current() er.
Avatar billede xtr0 Nybegynder
25. juni 2006 - 16:18 #3
Dette er min kode pt.:
$db_tmp->execute_query("SELECT * FROM gallery_pics WHERE gallery_id = '$org[gallery_id]'");
while ($test = $db_tmp->fetchRow(3)) {
    $array[] = $test['id'];
}
for ($counter = 0; $array[$counter] != $org['id']; $counter++) {
}
echo"Current: $array[$counter]<br>";
$next = $counter++;
$prev = $counter--;
echo"Next: $array[$next]<br>
Prev: $array[$prev]<br>";
   
print_r($array);

Den outputter dog underligt.
Hvis $id er lig med 4 siger den:
Current: 4
Next: 4
Prev: 6
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )

Id=1:
Current: 1
Next: 1
Prev: 2
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )
Avatar billede xtr0 Nybegynder
25. juni 2006 - 17:16 #4
Løste det med:
    $db->execute_query("SELECT * FROM gallery_pics WHERE id = '$_GET[id]'");
    $org = $db->fetchRow(3);
   
    $db_tmp->execute_query("SELECT * FROM gallery_pics WHERE gallery_id = '$org[gallery_id]'");
    while ($test = $db_tmp->fetchRow(3)) {
        $array[] = $test['id'];
    }

    for ($counter = 0; $array[$counter] != $org['id']; $counter++) {
    }
    echo"Current: $array[$counter]<br>";
    $db_tmp->execute_query('SELECT id FROM gallery_pics WHERE gallery_id='.$org['gallery_id'].' AND id<'.$_GET['id'].' ORDER BY id DESC LIMIT 1');
    $db_tmp_row=$db_tmp->fetchRow(3);
    $prev=$db_tmp_row[id];
   
    $db_tmp->execute_query('SELECT id FROM gallery_pics WHERE gallery_id='.$org['gallery_id'].' AND id>'.$_GET['id'].' ORDER BY id ASC LIMIT 1');
    $db_tmp_row=$db_tmp->fetchRow(3);
    $next=$db_tmp_row[id];
   
    echo"Next: $next<br>
    Prev: $prev<br>";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester