• User Attivo

    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]


  • User Attivo

    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'


  • User Attivo

    ho modificato la query, ora l'errore di prima non me lo da più, ma me ne da un'altro! :arrabbiato:

    [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


  • User Attivo

    ok a posto ci sono riuscito!!!! :yuppi:, 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 😄