• User Attivo

    [Risolto] Sql: record precedente, record successivo

    Buongiorno. Avrei un consiglio da chiedervi.

    Nel sito che ho in firma vorrei rendere più scorrevole la navigazione tra le foto delle varie categorie mettendo un collegamento nella pagina di una singola foto alla foto successiva e a quella precedente in base ad una determinata ricerca.

    Ammettendo quindi di avere una ricerca di questo tipo

    
    $query=mysql_query("select * from photo where category='1' order by data desc");
    
    

    e sapendo che l'id della foto corrente è il 5 (ad esempio), mi servirebbe sapere come ricavare il record successivo e precedente a quello della foto corrente.

    Questo comporta il fatto che gli id delle foto posso anche non essere progressivi (ad esempio la foto precedente potrebbe avere id 2 e quella successiva 10).

    Come posso fare?

    Grazie in anticipo 🙂


  • User

    ciao
    la cosa che mi viene in mente è:

    scorri il risultato della query e metti tutto in un array (Se come risultato della query ti serve solo un campo ti basta un array altrimenti devi fare un array di array), a quel punto scorrendo l'array con un for($i = 0; $i< count($array); $i++) hai che la foto precedente si trova in array[$i-1] e quella successiva in array[$i+1].


  • User Attivo

    Avevo pensato anche io ti fare qualcosa con gli array. Tipo un while che inserisce tutti gli id in un array, ricavarne la posizione di quello corrente e fare +1 e -1. Ma speravo che ci fosse un modo diretto con sql.

    Comunque grazie 😉


  • Super User

    Bene,segnalo come risolto 🙂
    Ciao!