Ho un database come questo:
Ho bisogno di estrarre i valori "a", "b", "c" e "d" senza però ripetere due volte "b". Si può fare?codice:+-----+-----+ | n°1 | n°2 | +-----+-----+ | a | b | +-----+-----+ | b | c | +-----+-----+ | | d | +-----+-----+
Ho un database come questo:
Ho bisogno di estrarre i valori "a", "b", "c" e "d" senza però ripetere due volte "b". Si può fare?codice:+-----+-----+ | n°1 | n°2 | +-----+-----+ | a | b | +-----+-----+ | b | c | +-----+-----+ | | d | +-----+-----+
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.
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.
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.
Questo sembrerebbe fare al caso mio... Grazie! Ci provo, se poi non ci riesco mi rifaccio vivo.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.
![]()
Come previsto... Mi rifaccio vivo!
![]()
Allora, io estraggo una lista di dati in questo modo:
Il risultato è qualcosa del genere: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); } ?>
Come cavolo lo creo l'array?!?codice:questo è il primo dato questo è il secondo dato questo è il terzo dato
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.