Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107

    evitare di estrarre doppioni da un database

    Ho un database come questo:

    codice:
    +-----+-----+
    | n°1 | n°2 |
    +-----+-----+
    |  a  |  b  |
    +-----+-----+
    |  b  |  c  |
    +-----+-----+
    |     |  d  |
    +-----+-----+
    Ho bisogno di estrarre i valori "a", "b", "c" e "d" senza però ripetere due volte "b". Si può fare?

  2. #2
    Usa DISTINCT nella SELECT

  3. #3
    il "b" del campo 2 ha nulla a che vedere con il "b" del campo 1.

    Se estrai il record dove il n.1 e' "a" estrai anche l'altro (n.2 "b")che definisci doppione.

    Ma probabilmente non ho capito cosa vuoi fare.



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

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    Provo a spiegarmi meglio: immaginate che le lettere siano persone e le colonne indichino i giorni lavorativi. La domanda posta al sistema è: chi ha lavorato nei giorni numero 1 e numero 2? La risposta, estraendo semplicemente i dati dal database, sarebbe: " tizio (a), caio (b), caio (b), sempronio (c), vattelapesca (d)". In pratica io vorrei evitare di ripetere due volte il nome di caio, perché a me interessa solo sapere chi ha lavorato, non quante volte lo ha fatto. Può andare bene anche un'operazione in php per escludere i doppioni... Non è fondamentale risolvere il problema all'interno del MySQL.

  5. #5
    In pratica hai dei valori ripetuti su diverse colonne.

    Il problema e' che se cerchi pippo nella colonna 1 potresti avere pallino nella 2 e pallino nella 3.

    In altre parole come e' fatta la tabella e quali dati ci sono ... ?!?

    Puoi avere l'univocita' di campo oppure di tupla. In alternativa potresti raccogliere tutti i campi di tutte le tuple con i nomi e metterle in un array. Poi filtri l'array con array_unique() e ti ritrovi con dati singoli.


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

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    In alternativa potresti raccogliere tutti i campi di tutte le tuple con i nomi e metterle in un array. Poi filtri l'array con array_unique() e ti ritrovi con dati singoli.
    Questo sembrerebbe fare al caso mio... Grazie! Ci provo, se poi non ci riesco mi rifaccio vivo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    107
    Come previsto... Mi rifaccio vivo!


    Allora, io estraggo una lista di dati in questo modo:

    codice:
    <?php
    	for	($i=1; $i <= $numero; $i++)		{$tutto = mysql_query ("SELECT Dati FROM Archivio WHERE ID='$i'");
    						while	($riga = mysql_fetch_array($tutto))	{print "{$riga['Dati']}
    \n";};
    						mysql_data_seek($tutto, 0);
    						}
    ?>
    Il risultato è qualcosa del genere:
    codice:
    questo è il primo dato
    questo è il secondo dato
    questo è il terzo dato
    Come cavolo lo creo l'array?!?

  8. #8
    La fantasia umana non ha confini.

    Posta un dump della tabella con una decina di record. Altrimenti non ci capiremo mai.

    Quel ciclo for che effettua una query per ogni id estrae un solo record. che ci fa il while'? E che c'entrano tutte le colonne che hai descritto sinora?

    Se fai un select dati senza il where ti estrae tutto lo stesso. Invece del print metti un array e ti raccoglie tutti i dati che vuoi.
    codice:
    	
    $tutto = mysql_query ("SELECT Dati FROM Archivio");
     
             while($riga = mysql_fetch_array($tutto)) {
             $dati[] = $riga['Dati'];
             }

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

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.