Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    6

    SELECT DISTINCT particolare

    Ciao a tutti.

    La domanda è questa:

    in una tabella ho, per esempio, questi valori.

    ID CODICE
    01 A
    02 A
    03 B
    04 C

    È possibile ottenere l'equivalente di un "SELECT DISTINCT" durante l'esecuzione di un ciclo "while"?

    Mi spiego meglio: per come ho organizzato il lavoro (male), non mi è possibile ottenere risultati distinti tramite query (dovrei rifare tutto).
    Posso, durante l'esecuzione del ciclo, ottenere "A,B,C,D" invece di "A,A,B,C,D"?

    Grazie a chiunque possa darmi una mano.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    6
    nessuno che possa aiutarmi?
    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    La domanda non è chiara purtroppo. Quello che trovi nell'array estratto è lo specchio di quello che hai nel db. Per quale ragione dici che non si può fare un DISTINCT nella query?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    6
    Per come ho organizzato il lavoro, ho una serie di cicli annidati che mi rendono impossibile formulare la query in modo differente:
    ho bisogno di risultati ripetuti (es. A,A,B,C,C,D) in tutti i cicli tranne uno (per il quale dovrei ottenere A,B,C,D).

    Tutto il progetto funzionava perfettamente, poi il cliente ha voluto una modifica dell'ultimo minuto....

    Quindi o trovo una soluzione per far capire a questo dannato ciclo che quando trova
    un valore ripetuto lo deve ignorare... o è meglio che faccia tabula rasa e rifaccia tutto (cosa che, ovviamente, preferirei evitare).

    Spero che il mio problema sia chiaro... Lo so che ha poco senso, ma ormai ho strutturato il progetto in questo modo.

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Come fa ad essere chiaro. Cicli annidati di che? for ? while? queries annidate in cicli while? Cosa contraddistingue quello specifico ciclo con doppione da evitare? Il doppione riguarda tutto il record od un campo in particolare?

    Se fattibile con un IF, oppure no?

    $campo ="";
    while ......
    if($campo != $row['campo']) {
    echo "stampa";
    $campo = $row['campo']);
    } //fine if
    } // fine while

    questo potrebbe essere un esempio di applicazione con una IF per stampare solo una volta un determinato valore. Se il valore fosse in un array lo scorri con foreach e stessa if. ma chissà com'è il tuo problema?

  6. #6
    Se la query che contiene il doppione è comunque ordinata in modo da avere i doppioni vicini, ovvero è comunque tale per cui le A appaiono tutte una dopo l'altra, allora è facile scrivere un ciclo che prenda in considerazione ogni riga, ma esegua ciò che deve solo se il valore attuale del codice è diverso dal precedente:

    precedente=""
    while not eof
    leggi attuale
    if attuale<>precedente
    precedente=attuale
    fai ciò che devi
    endif
    endwhile

    (mi sono accorto solo ora che la mia soluzione è identica a quella proposta da pierotto... Beh, meglio due che nessuna!)
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    6
    perfetto, mi avete dato dei suggerimenti molto utili.

    ciao e grazie 1.000

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.