• User

    paging con partenza da risultato prestabilito

    Salve a tutti!
    vorrei inserire un "pagina precedente" - "pagina successiva" che incrementi il parametro passato con GET di 1 ma controllando l'esistenza di tale campo a dbase o passando al successivo (spero di essere comprensibile, scusate...)

    penso per questo di dover fare una paginazione dei risultati, ma come faccio a " dirgli" di partire dal parametro passato nell'URL, e, secondo voi, e' questo il metodo corretto o ne esiste uno piu' semplice?

    grazie a tutti!
    un bacio


  • User Attivo

    C'è una funzione di MySQL che permette di ricercare valori solo in un determinato intervallo.
    La funzione si chiama LIMIT e richiede come parametri il campo dati di partenza ed il numero di campi da restituire a partire dal primo campo.
    Per indicare il primo parametro bisogna ricordarsi che per MySQL lo 0 è il primo valore.

    Es. Restituisci 10 campi a partire dal 5 campo della tabella.
    SELECT * FROM tabella LIMIT 4, 10

    Es. Restituisci il 5° campo della tabella
    SELECT * FROM tabella LIMIT 4, 1

    Adattando la query al tuo script ed inserendo come primo paramentro del LIMIT il valore GET che ottieni, puoi creare un semplice paging.

    Ciao!


  • User

    Ciao Sups!
    grazie mille dell'aiuto pero' purtroppo non posso risolvere cosi' il mio problema,
    cerco di spiegarmi meglio:
    ho una pagina in cui visualizzo tutte le miniature dei prodotti, cliccando su una miniatura apro la pagina dettagli ad es. del cod. prodotto 702 che ha ID=18 (e quindi trasmette ID=18 nell'url)
    In questa pagina di dettaglio ho dei link a pag precedente e pag successiva che in questo momento sono strutturati in modo da prendere l'ID trasmesso dall'url, incrementarlo di 1 (o decrementarlo) e ripassarlo nell'url per aprire la nuova pagina.
    I problemi che ho con questo metodo sono 2:

    1. se c'e' un ID vuoto mi da' errore
    2. avrei bisogno di passare nell'url come parametro il num di codice prodotto al posto dell'ID perche' altrimenti mischia tutto... ma se lo faccio mi incrementa di molto il problema 1, perche' ci sono molti piu' numeri "vuoti" che mi darebbero errore...

    Scusate il delirio ma e' difficilissimo spiegarmi... magari potrei passarti in msg privato il link al sito, fatemi sapere se avete voglia di darmi una mano che ve lo passo!
    (non lo posto qui perche' altrimenti google me lo indicizza e viene fuori un macello...!!!)
    grazie mille,
    erica


  • Moderatore

    allora le domande sono:

    1. tutti i prodotti hanno un codice?
    2. i codici sono disposti in serie?(es. 58-59-etc)
    3. per il problema dell'ID vuoto risolvi con un url location che ti rimanda alla pagina dei prodotti.... inoltre consiglio sempre di inserire i valori tramite POST 😄 mi piacciono di più-.-

    Attendiamo tue risposte


  • User

    Ciao Massimux!
    allora ti rispondo subito:

    1. si, tutti i prodotti hanno un codice
      2)no, il codice e' tipo "parlante" mi sembra che si dica es: i prodotti categoria "1" hanno cod tipo 0000, i prodotti categoria "2" hanno cod tipo 2000 ecc e poi i prodotti tipo "A" hanno cod. 200, i prodotti tipo "B" hanno cod 300 ecc... in questo modo so che il prodotto cod ad es. 0201 e' della categoria "1" tipo "A" e cosi' via...
    2. ora mi guardo l'url location e me la studio subito, credo di averla gia' usata... pero' il problema e' che nei codici ho dei "buchi" es dal prodotto 0220 passo al 0301 ecc... e quindi mi tornerebbe ogni volta alla pagina prodotti... inoltre anche proma che la tipologia "finisca" ci sono dei buchi, ad esempio di prodotti che sono stati tolti da catalogo ad esempio passo dal 0813 al 0815 perche' il 0814 non e' piu' presente a catalogo...
      Spero di essermi spiegata!

    Visto che sei un moderatore, ne approfitto per chiederti una cosa: se posto l'url del sito qui lo indicizza vero? perche' mi e' successo su un altro forum e non e' il massimo per me...

    Grazie mille ,
    ciao


  • User Attivo

    Le pagine si basano su un ID proprietario che non corrisponde con quello originale del prodotto e se il prodotto successivo non esiste, si verifica un problema.
    Per evitare questo problema, potresti fare un controllo sulle informazioni del DB in due modi.

    1. Quando fai la query di richiesta al DB per ottenere informazioni sul prodotto da visualizzare, ne fai una anche su quello che deve seguire, se esiste si incrementa di 1 l'ID, altrimenti di 2 o così via.

    2. L'ID rimane sempre lo stesso, ma all'apertura della pagina viene fatto un controllo, se non esistono informazioni, si prosegue la ricerca fino a trovare quella successiva, e si cambia l'ID con il nuovo appena calcolato.

    Dovrebbe funzionare!
    Ciao!


  • User

    Grazie Sups! se riesco a uscire da questo groviglio davvero te ne saro' grata a vita! ci sto davvero impazzendo!
    ti chiedo allora un paio di delucidazioni sulle due soluzioni:

    1. la query al DB anche per la pag successiva e precedente quindi la devo fare nella pagina prodotti, non in quella delle specifiche, giusto?
      2)se i numeri di codice sono numerici posso sostituirli all'ID vero? Credo che per il mio caso sia meglio questa seconda soluzione, sai dirmi come si chiama la funzione per il controllo dell'ID dell'url, o anche solo quella dell'estrapolazione?

    Grazie mille davvero!


  • User

    Ci stavo pensando un po' con l'aiuto di Sups .... :mmm:

    Credo che potrei mettere il numero di codice come parametro passato per aprire la relativa pagina prodotti e poi usare la seconda soluzione che mi hai proposto in modo da fare una cosa del tipo:

    • clicco sulla miniatura e si apre la pagina specifica
    • il codice del prodotto relativo e' passato nell'url e si apre la pagina di specifiche
    • clicco su successivo (o precedente)
    • mi recupera dall'url attuale il numero di codice, lo incrementa di uno se il cod successivo esiste lo passa come nuovo parametro all'url e apre la pagina, se non esiste lo incrementa ancora di 1 fino a trovarne uno valido
      in piu' dovrebbe riconoscere la fine e l'inizio della numerazione in modo da tornare alla pagina prodotti nel caso in cui non ci siano piu' prodotti da visualizzare...
      Secondo voi puo' funzionare?
      avete idea di come posso "tradurlo"?
      grazie.

  • User

    So che non e' questo il posto giusto... prossimamente prometto che lo cerchero' e lo ri-posto...
    pero, stavo impazzendo a fare delle ricerche qui sul forum, se a qualcuno puo' servire, qui c'e' uno script per fare ricerche sul forum con google;

    selezionate questo blocco di testo e trascinatelo nella barra dei link di Safari, (per gli utenti Win, non so se e' la stessa cosa, magari qualcuno puo' aiutare...) chiamatelo Ricerca Forum GT" o quel che volete:

    javascript:q=window.prompt('Cerca nel forum di GT:');if(q.length>0){window.location='http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=site:giorgiotave.it+inurl:forum+'+q.replace(/^\s+|\s+$/g,'').replace(/ /g,'+')}

    Cliccandoci sopra potrete fare una ricerca all'interno del forum usando Google.

    Ciao!


    P.S. Questo e' uno script riadattato la cui versione originale e' stata postata da ottimio su un altro forum