Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    navigare tra i record di msql

    avrei bisogno di estrarre 3 record che siano
    uno quello richiesto
    e gli altri 2 : quello precedente e quello successivo
    poichè l'id non è detto che sia squenziale nonso come fare

    insomma vorrei una cosa simile

    $query = ("SELECT id_C FROM $tabella WHERE id_C = (record precedente) as prex AND id_C = (record successivo) as next ORDER BY id_C");


    è possibile

  2. #2

  3. #3
    un suggerimento?

  4. #4
    http://forum.html.it/forum/showthrea...hreadid=833825

    guarda questo thread...

    ma qualcosa ci dovra' pure essere che identifica l'attuale, il precedente ed il successivo.... altrimenti la domanda sarebbe precedente di che?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    si uno è richesto
    scusa non l'ho inserito nella query
    cmq
    grazie speravo prorpio che rispondessi tu
    vado a leggermi il thread

  6. #6
    si vista
    ma senti
    (SELECT pippo FROM ctabella
    WHERE UNIX_TIMESTAMP(pippo) < UNIX_TIMESTAMP()

    /********************
    ^così mi trovo quello precedente?
    di una sola posizione?non è detto cheil record richiesto sia il primo o l'ultimo della tabella
    /********************

    order by pippo desc
    limit 1)
    UNION
    (SELECT pippo FROM ctabella
    WHERE UNIX_TIMESTAMP(pippo) >= UNIX_TIMESTAMP()

    /********************
    ^così mi trovo quello successivo?
    stesse domande
    /********************


    order by pippo ASC
    limit 2)


  7. #7
    Quella richiesta era specifica ... il precedente, l'attuale, il seguente.

    ovvio che devi adattare campi, quantita' e ordinamento ... ma sempre quello e' il giro del fumo...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    grazie per avere risposto di nuovo
    sai qual'è il dubbio, perchè la richiesta è la stessa manon sulle date
    il dubbio è:
    ma con questo simbolo pesca proprio il precedente non il primo che abbia un valore minore?
    e anceh >= non mi estra il primo valore maggiore o uguale?
    e ancora
    limit 2) con che ordine mi da i risultati?
    cioè coem faccio a sapere qual'è il precedente o il successivo se non faccio un as qualcosa

    scusa se faccio tante domande
    dovrei metterloin pratica
    è solo che non ne capisco ancora la logica

  9. #9
    Pero' ho finalmente capito io i tuoi dubbi.... andiamo con ordine.
    mettiamo che il valore cercato sia un id invece di un timestamp.
    codice:
    (SELECT pippo FROM ctabella 
    WHERE id  < '50'      // qui prendiamo tutti i minori di 50
    order by pippo desc   // qui li ordiniamo in modo discendente
    limit 1)              // qui prendiamo solo il primo dell'ordinamento
                          // potrebbe essere il 49
    UNION
     
    (SELECT pippo FROM ctabella 
    WHERE id >= '50'      // prendiamo il 50 se esiste e maggiori
    order by pippo asc   // qui li ordiniamo in modo ascendente
    limit 2)              // prendiamo i primi due ordinati
                          // potrebbero essere se ci sono 50 e 51
    in questo modo a partire dal riferimento 50 andremo a prendere il primo minore, il 50 se esiste, ed il primo maggiore.
    Nel caso non esista il 50 prenderemo i due subito maggiori. Qui si potrebbe scegliere se mancando il 50, prendere i due minori invece dei due maggiori... basterebbe solo portare il valore = nella prima parte della UNION...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    scusa ma il piccolo cervello va in prima
    allora ora mi è quasi tutto chiaro
    devo solo provarlo grazie

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.