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

    Ottenere su elenco record l'ID del primo

    Ciao a tutti,
    in una query del genere:
    codice:
    SELECT * FROM tabella ORDER BY ID DESC LIMIT 0,30
    all'interno del ciclo while come faccio ad ottenere il valore del campo ID dell'ultimo record, ovvero del primo visto che è ordinato in modo ascendente?

  2. #2
    Intendi l'ultimo in assoluto oppure l'ultimo di ogni blocco di 30 record che estrai?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    L'ultimo, ovvero il primo, di ogni blocco

  4. #4
    Potresti fare una cosa del genere:

    Codice PHP:
    ...
    $id 0;
    while (...) {
        if (
    $id == 0) {
            
    $id $valore;
        }
        ...
    }
    ... 
    In questo modo all'uscita del ciclo while nella variabile $id è contenuto il primo ID del resultset.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Ed ovviamente all'interno del ciclo incremento la variabile $id
    codice:
    $id++;
    Grazie, non ci avevo pensato

  6. #6
    Anzi, ferma, ho letto male il tuo codice, la variabile va incrementata ma bisogna modificare il tuo codice
    Codice PHP:
    $id 0
    while (...) { 
        if (
    $id == 0) { 
            
    $primo_id $valore
        } 
    $id++;
        ... 

    Dico bene?

  7. #7
    Originariamente inviato da satifal
    Codice PHP:
    ...
    $id 0;
    while (...) {
        if (
    $id == 0) {
            
    $id $valore;
        }
        ...
    }
    ... 
    Il codice andava bene così come l'ho postato. La logica è che $id va impostato col valore dell'ID contenuto nel primo record. Quindi esso viene impostato inizialmente a 0 cosicchè la prima volta si entra nell'if e si imposta il valore che sarà sicuramente > 0 (valore del campo ID). Da quel momento in poi esso non dovrà essere più modificato, infatti non si entra più nell'if ed alla fine del ciclo while in $id ci sarà il valore del campo ID contenuto nel primo record.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8

  9. #9
    Avresti potuto adottare anche un'altra strada:

    Codice PHP:
    SELECT FROM tabella ORDER BY ID ASC LIMIT 0,
    Dopodiche con un while recuperavi questo valore e se l'id della prima query era uguale al valore recuperato facevi quello che ti serviva.
    E' un'alternativa che mi sento di suggerirti, scegli tu la strada che vuoi intraprendere.

  10. #10
    In realtà ho dovuto seguire una strada un po' diversa, utilizzando le sub-query, poichè la select originale non è ordinata in base all'id, bensi in base ad un campo data. Pertanto non è detto che il primo record sia uguale a quello con id maggiore.
    Ho dovuto quindi fare:
    Codice PHP:
    SELECT *, (SELECT MAX(IDFROM tabella WHERE ... ORDER BY ID DESC LIMIT 030) AS max_id FROM tabella WHERE ... ORDER BY campo_data DESC LIMIT 030
    Poi nel ciclo while ho seguito il seggerimento di satifal:
    Codice PHP:
    $max_id 0;
    while{
     if(
    $max_id == 0){
    $max_id $row["ID"];
        } 

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.