- Home
- Categorie
- Coding e Sistemistica
- PHP
- elenco con nominativi ripetuti più volte
-
elenco con nominativi ripetuti più volte
ciao a tutti,
ho un problema con un elenco, mi vengono ripetuti i nomi più volte, anzichè stamparmelo una volta sola.
Come faccio a raggruppare le tabelle "a_admin" e "a_agenti"? Ho provato con UNION ma succede un casino perchè i nomi dei campi tra le due tabelle sono diversi.
Questo è il codice:[php]
<?
$sql = " SELECT a_admin., a_agenti.
FROM a_admin, a_agenti
ORDER BY a_admin.nome_admin ASC, a_agenti.nome_agente ASC";
$result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
while($row=mysql_fetch_array($result)){
?>
<tr>
<td width="135" height="41"><span class="testo_rosso_bold">nome</span></td>
<td width="140"><span class="testo_rosso_bold">cognome</span></td>
<td width="100"> </td>
<td width="140"><span class="testo_rosso_bold">categoria</span></td>
<td width="135"><span class="testo_rosso_bold">cellulare</span></td>
</tr>
<tr>
<td height="1" colspan="5" valign="top" bgcolor="BE743F"></td>
</tr>
<?
while($row=mysql_fetch_array($result)){
?>
<tr>
<td height="41">
<span class="testo_grigio_bold">
<?=$row['nome_admin']?>
<?=$row['nome_agente']?>
</span>
</td>
<td>
<span class="testo_grigio_bold">
<?=$row['cognome_admin']?>
<?=$row['cognome_agente']?>
</span>
</td>
<td> </td>
<td>
<span class="testo_grigio_bold">
<?=$row['categoria']?>
</span>
</td>
<td>
<span class="testo_grigio_bold">
<?=$row['cellulare_admin']?>
<?=$row['cellulare_agente']?>
</span>
</td>
</tr>
<?
}
?>
[/php]
-
dopo decine e decine di tentativi finalmente sono riuscito a risolvere il problema facendo così:
[PHP]
<?
$sql = "SELECT a_admin.nome_admin, a_admin.cognome_admin, a_admin.categoria, a_admin.cellulare_admin
FROM a_admin
WHERE a_admin.id_admin!=0 AND a_admin.id_admin!=1000
UNION
SELECT a_agenti.nome_agente, a_agenti.cognome_agente, a_agenti.categoria, a_agenti.cellulare_agente
FROM a_agenti
WHERE a_agenti.id_agenti!=0 AND a_agenti.id_agenti!=1000
UNION
SELECT a_tecniche.nome_tecnica, a_tecniche.cognome_tecnica, a_tecniche.categoria, a_tecniche.cellulare_tecnica
FROM a_tecniche
WHERE a_tecniche.id_tecniche!=0 AND a_tecniche.id_tecniche!=1000 AND a_tecniche.id_tecniche!=1100";$result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
?>
[/PHP]e funziona bene, però se poi aggiungo:
[PHP]
ORDER BY a_admin.nome_admin ASC, a_agenti.nome_agente ASC, a_tecniche.nome_tecnica ASC
[/PHP]mi da questo errore:
errore Unknown column 'a_admin.nome_admin' in 'order clause'
-
ho modificato la query, ora l'errore di prima non me lo da più, ma me ne da un'altro!
[PHP]
<?
$sql = "(SELECT a_admin.*
FROM a_admin
WHERE a_admin.id_admin!=0 AND a_admin.id_admin!=1000)
UNION
(SELECT a_agenti.*
FROM a_agenti
WHERE a_agenti.id_agenti!=0 AND a_agenti.id_agenti!=1000)
UNION
(SELECT a_tecniche.*
FROM a_tecniche
WHERE a_tecniche.id_tecniche!=0 AND a_tecniche.id_tecniche!=1000 AND a_tecniche.id_tecniche!=1100)
ORDER BY a_admin.nome_admin DESC";$result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
?>
[/PHP]questo è l'errore:
errore Table 'a_admin' from one of the SELECTs cannot be used in global ORDER clause
-
ok a posto ci sono riuscito!!!! , posto il codice nel caso possa servire a qualcuno:
[PHP]
<?
$sql = "(SELECT a_admin.nome_admin AS nome, a_admin.cognome_admin AS cognome, a_admin.cellulare_admin AS cellulare, a_admin.categoria
FROM a_admin
WHERE a_admin.id_admin!=0 AND a_admin.id_admin!=1000)
UNION
(SELECT a_agenti.nome_agente AS nome, a_agenti.cognome_agente AS cognome, a_agenti.cellulare_agente AS cellulare, a_agenti.categoria
FROM a_agenti
WHERE a_agenti.id_agenti!=0 AND a_agenti.id_agenti!=1000)
UNION
(SELECT a_tecniche.nome_tecnica AS nome, a_tecniche.cognome_tecnica AS cognome, a_tecniche.cellulare_tecnica AS cellulare, a_tecniche.categoria
FROM a_tecniche
WHERE a_tecniche.id_tecniche!=0 AND a_tecniche.id_tecniche!=1000 AND a_tecniche.id_tecniche!=1100)
UNION
(SELECT b_operatori.nome_operatore AS nome, b_operatori.cognome_operatore AS cognome, b_operatori.cellulare_operatore AS cellulare, b_operatori.categoria
FROM b_operatori
WHERE b_operatori.id_operatori!=0 AND b_operatori.id_operatori!=1000)
ORDER BY nome ASC, cognome ASC";$result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
?>
[/PHP]wè sto diventando bravino col php