Newsgroup: it.comp.www.php
Titolo: Query su array - unione 2 query e ordinamento

Ciao a tutti.
Ho un problema abbastanza serio ed è questo:
Devo estrarre l'elenco dei nostri associati presenti in una regione
italiana...però, a questo elenco, devo aggiungere dei soci
"jolly" (presenti in alcune regioni  come la Lombardia, il Veneto ed
il Lazio) che PERO' devono apparire in tutte le regioni (in quanto non
hanno "limitazioni" territoriali).
Al momento sono riuscito ad estrarre sia l'elenco dei soci appartenti
ad una determinata regione (facendo una query sulla chiave
"regione"...)...sia l'elenco dei soci "jolly"... I due elenchi hanno
la medesima struttura di campi...(sono praticamente uguali)
ADESSO HO QUESTO PROBLEMA:
1) dovrei fondere i due elenchi, mettendoli in ordine alfabetico e
FACENDO IN MODO CHE SE IN UNA REGIONE E' PRESENTE UN SOCIO "JOLLY",
QUESTO NON APPAIA DUE VOLTE (ovvero sia nell'elenco su chiave
geografica, sia nell'elenco dei soci "jolly"), ma una volta sola.
Mi sembra quindi di aver capito che dovrei (ma non sono capace) fare:
1) estrazione elenco dati (mysql_query...) -->fatto
2) trasformazione degli elenchi ottenuti in array...-->non sono capace
3) fondere i 2 array ottenuti, ordinarli per nome, eliminare eventuali
doppioni (se ci sono) e stamparli a video --->non sono capace.
Ringrazio anticipatamente chi può dare una mano.
ES:
$noreg = array('161','187','134','213','618249');  //inserisco gli
ID_SOCIO di chi voglio estrarre...
    foreach ($noreg as $a){
$q3= "Select distinct * from socicoll a,provincia b where a.ID_SOCIO =
'$a' and a.provincia2=b.ID_PROVINCIA order by a.nome ASC";
$r3 = mysql_query($q3);
$array3 = array();
while ($row3 = mysql_fetch_array($r3)){
//echo "<li>$row3[NOME] - $row3[INDIRIZZO2] - $row3[LOCALITA2]</li>";
{array_push($array3, $row3);
}
}
};

 hanno "limitazioni" territoriali).
Io farei fare la "fusione" al db utilizzando UNION, vedi ad esempio:
http://www.w3schools.com/sql/sql_union.asp
-- 
Pubblicita' regresso: 
http://www.ferrero.org
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...


Ho provato a farlo...ma credo di avere un problema perché l'elenco dei
soci "jolly" è ottenuto ciclando sui valori di un array, che utilizzo
come chiave. Ecco il codice:


Ho provato ma ho problemi, in quanto l'elenco dei soci "jolly" è
ottenuto ciclando sui valori di un array che utilizzo come chiave.
Ecco il codice:
****estrazione soci "jolly"***
$noreg = array('161','187','134','213','618249');  //inserisco gli
ID_SOCIO di chi voglio estrarre...
    foreach ($noreg as $a){
$q3= "Select distinct * from socicoll a,provincia b where a.ID_SOCIO =
'$a' and a.provincia2=b.ID_PROVINCIA order by a.nome ASC";
$r3 = mysql_query($q3);
$array3 = array();
while ($row3 = mysql_fetch_array($r3)){
echo "<li>$row3[NOME] - $row3[INDIRIZZO2] - $row3[LOCALITA2]</li>";
}
};
*****

 come chiave. Ecco il codice:
scorri il primo elenco e ti memorizzi l'array con chiave id (quindi 
elenco1[id]), poi cicli il secondo elenco e verifichi if 
isset(elenco1[id]) => non fare niente, else ti memorizzi anche questo 
id;
finita la raccolta tramite foreach ($elenco1 as $key => $val) ti fai le 
query che ti servono tramite la key che contiene l'id che ti serve...
non è il metodo più veloce ma è quello che meglio riesco a descrivere, 
spero di essere stato chiaro :P


non ti conviene fare una union fatta :
select nome, indirizzo, localita
from [tabella]
where regione = [regione]
union
select distinct nome, indirizzo, localita
from socicoll a,provincia b
where a.ID_SOCIO  in ('161','187','134','213','618249')
and a.provincia2=b.ID_PROVINCIA
Ciao


Grazie!!!
Risolto tutto! Va a meraviglia!
Non sapevo come fare " where a.ID_SOCIO  in
('161','187','134','213','618249')"...
...ho imparato una cosa nuova! :-)
A proposito: ma esistono sito dove ci si può esercitare (seriamente)
con PHP, per impararlo bene?
Grazie ancora!


quello che ho scritto non c'entra nulla con php, è SQL puro
da quel che vedo ti mancano le basi di SQL, prima studiale cerca sui 
miei vecchi post alcuni link, ti possono essere utili.
comunque per qualsiasi problema sia di php che di sql siamo qui per 
darci una mano a vicenda.
Ciao