Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28

Discussione: Scorrimento record

  1. #1

    Scorrimento record

    Posto perchè con la ricerca non riesco a trovare nulla, scusate.
    Il mio problema è:

    Ho una tabella che contiene i dati di una serie di immagini, tra i quali l'id dell'immagine e l'id dello speciale al quale questa immagine appartiene.

    Devo scorrere le immagini con un tasto next e uno back.

    Come li faccio questi tasti sapendo che nella pagina dove visualizzo l'immagine devo passare id_speciale, id_foto e id_utente?

    non posso fare un tasto next con incremento di 1 perchè id_utente e id_foto sono sempre gli stessi:
    [php]
    <a href=\"mostra_foto.php?id_speciale=$id_speciale_pa ssato&id_foto=" .(($id_foto_passato)+1). "&id_utente=$id_utente\">successivo</a>
    [php]

    Spiego meglio:
    id_speciale e id_utente sono sempre gli stessi e quindi se io ho ad esempio:

    SPECIALE 1 contiene FOTO 1, 2, 3, 4
    SPECIALE 2 contiene FOTO 5, 6, 7, 8, 9

    e passo la stringa:
    codice:
    mostra_foto.php?id_speciale=1&id_foto=4&id_utente=23
    tutto ok, ma quando premo next lui mi cercherà:
    codice:
    mostra_foto.php?id_speciale=1&id_foto=5&id_utente=23
    Ed essendo che la foto 5 fa parte di un'altro speciale e ha un'altro id_utente mi darà errore.

    Come faccio a scorrere questi record? E' possibile?
    Facendo in modo naturalmente che arrivati all'ultima immagine dello speciale si ritorni poi alla prima cliccando su next.

    Spero di essermi spiegato, lo so è contorto, ma aiuto please!!
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  2. #2
    up
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, perchè non filtri i record con una query?
    potresti fare:
    SELECT * FROM TUATABELLA WHERE SPECIALE=nrSpecialeSelezionato

    cosi hai tutte sono foto di quello "speciale"
    Jupy

  4. #4
    ho già quella query:
    codice:
    SELECT * FROM fotospeciali, speciali WHERE fotospeciali.id_foto='$id_foto_passato' AND speciali.id='$id_speciale_passato'
    il problema è far scorrere quei record con 2 tastini avanti e indietro, facendo anche in modo che quando arriva all'ultimo torni al primo... non riesco a trovare nel forum qualche discussione su come fare un next e un back...
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    penso che la funzione mysql_data_seek(risultato,numero_riga) faccia al caso tuo.

    non l'ho mai provata, ma serve a spostarsi avanti o indietro in un recordset

    potresti fare una cosa del genere:
    $numRec=0;
    $result=mysql_query($sql);
    $row = mysql_fetch_row($result);
    se non sei alla fine
    $numRec++;
    fai vedere il record..

    per spostarti:
    (premetto che a priori dovresti sapere quanti record ci sono)

    mysql_data_seek($result,$numRec+1) (ti sposti in avanti)

    mysql_data_seek($result,$numRec-1) (ti sposti indietro)

    rileggi il record:
    $row = mysql_fetch_row($result);
    .....
    spero che hai capito questa specie di pseudo codice..
    Jupy

  6. #6
    Ci provo subito grazie mille, ti faccio sapere se funziona!
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  7. #7
    Un problema del genere l'ho risolto in questo modo


    Ti devi creare 2 query
    1 per vedere se esiste una foto successiva
    2 per vedere se esiste una foto precedente

    codice:
    $id_foto_passato=$_GET['id_foto'];
    $id_speciale_passato=$_GET['id_spec'];
    $query ="SELECT fotospeciali.id_foto,speciali.id FROM fotospeciali, speciali WHERE fotospeciali.id_foto>$id_foto_passato AND speciali.id=$id_speciale_passato ORDER BY fotospeciali.id_foto Limit 1";
    $result =@mysql_query($query,$db);
    $id_max=@mysql_result($result,0,"fotospeciali.id_foto");
    $query ="SELECT fotospeciali.id_foto,speciali.id FROM fotospeciali, speciali WHERE fotospeciali.id_foto<$id_foto_passato AND speciali.id=$id_speciale_passato ORDER BY fotospeciali.id_foto DESC  Limit 1";
    $result = @mysql_query($query,$db);
    $id_min=@mysql_result($result,0,"fotospeciali.id_foto");
    $links=(!empty($id_max))?"<a href=\"?id_foto=$id_max&id_spec=$id_speciale_passato\">prossima":"";
    $linkp=(!empty($id_min))?"<a href=\"?id_=$id_min&id_spec=$id_speciale_passato\">precedente</a>":"";
    alla fine se esiste una foto successiva ti trovi nella variabile $links il link con la scritta successiva
    e la stessa cosa vale per $linkp per il link precedente

  8. #8
    Jupi 64: non riesco ma grazie lo stesso.

    Carmine: grazie, ho inserito e adattato la query... ma non mi stampa nulla... non da errori, ma non stampa nulla.. come mai?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  9. #9
    Se mi posti lo script per intero logicamente senza i dati per la connessione cercherò di correggerlo

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da bluego78
    Jupi 64: non riesco ma grazie lo stesso.
    ti posto un estratto del codice che uso io per navigare tra record..
    funziona.. devi solo adattarlo alle tue esigenze!
    $startIndex=$_REQUEST['seek'];
    ...apertura tabella...
    $AffectedRows=mysql_affected_rows($db); ...db è il riferimento alla connessione...

    mysql_data_seek($result,$startIndex);
    $row=mysql_fetch_row($result);
    ...visualizzo il record....
    ...chiudo la connessione...

    print("
    Seleziona il record
    ");
    for($index=0;$index<$AffectedRows;$index++)
    {
    print("<a href=\"{$_SERVER['PHP_SELF']}?seek=$index\">".($index+1) . "</a>");
    }
    magari controlla la sintassi.. non vorrei che riportandola abbia sbagliato qualcosa.. comunque per scorrere i record questa è la procedura giusta...
    Jupy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.