Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema query

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    50

    problema query

    ciao, ho fatto questa query,

    Codice PHP:
    $sql_insegnante_1 "SELECT a_login.*, a_anagrafica.*, a_categoria.*, c_listino_mit.* 
                         FROM a_login, a_anagrafica, a_categoria, c_listino_mit 
                          WHERE a_login.id_anagrafica = a_anagrafica.id_anagrafica 
                        AND a_login.id_categoria = a_categoria.id_categoria 
                        AND a_categoria.id_categoria = c_listino_mit.id_categoria_1  
                        AND c_listino_mit.id_listino_mit = "
    .$_SESSION[id_listino_mit]."
                        ORDER BY a_anagrafica.cognome"


    però stranamente nella select non mi visualizza il primo nome della lista (in questo caso Aldo):

    Aldo
    Francesca
    Giovanni


    Allora ho pensato che forse era meglio usare nella query i JOIN,

    Codice PHP:
    $sql_insegnante_1 "SELECT a_login.*, a_anagrafica.*, a_categoria.*, c_listino_mit.* 

                    FROM a_login 
                
                    INNER JOIN a_anagrafica
                    ON a_login.id_anagrafica = a_anagrafica.id_anagrafica
                    
                    INNER JOIN a_categoria
                    ON a_login.id_categoria = a_categoria.id_categoria

                    INNER JOIN c_listino_mit
                    ON a_categoria.id_categoria = c_listino_mit.id_categoria_1 AND c_listino_mit.id_listino_mit = "
    .$_SESSION[id_listino_mit].

                    ORDER BY a_anagrafica.cognome"

    ma continua a non visualizzarmi il primo nome della lista, mi aiutate a correggere la query perfavore?

  2. #2
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Posta anche il codice che usi per stampare i dati, forse l'errore è li
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    50
    eccolo:

    Codice PHP:
    <select name="id_insegnante_1">
    <option value="" selected="selected">seleziona</option>
    <optgroup       style="background-color: #E6E6E6"       label="<?=$row_insegnante_1['categoria']?>"    >      </optgroup>
    <?php 
    while($row_insegnante_1 mysql_fetch_object($result_insegnante_1)) 

    echo 
    "<option value=\"$row_insegnante_1->id_login\""; if ($_POST["id_insegnante_1"] == "$row_insegnante_1->id_login") echo "selected"
    echo 
    ">$row_insegnante_1->cognome $row_insegnante_1->nome</option>\n";


    ?>
    </select>

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    quel $row_insegnante_l fuori dal ciclo while cosa ti aspetti che contenga?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    50
    Originariamente inviato da luca200
    quel $row_insegnante_l fuori dal ciclo while cosa ti aspetti che contenga?
    quella è solo l'etichetta che stampo in cima ad ogni categoria di insegnante, ad esempio:

    Trainer
    Giada
    Carla
    Francesca
    Trainer Master
    Camilla
    Franca
    Trainer International
    Lucia
    Emma
    Sonia

    sta fuori il ciclo solo perchè in questo caso la categoria è solo una, quindi non mi serve inserirlo all'interno di un ciclo

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    50
    praticamente la relazione dovrebbe essere questa:


    c_listino_mit.* da uno a uno ----> a_categoria.*

    a_categoria.* da uno a molti ----> a_login.*

    a_login.* da uno a uno ----> a_anagrafica.*

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    50
    nessuno sa come si fa?

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    ciao,
    se fai la INNER JOIN e Aldo non è presente in una delle 3 tabelle allora Aldo non uscirà in visualizzazione.
    Prova con delle LEFT JOIN (o RIGHT, in base alle necessità), in questo caso Aldo apparirà anche se nelle altre tabelle non sarà presente (in questo caso il valore dei campi nelle altre tabelle sarà NULL).

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 © 2024 vBulletin Solutions, Inc. All rights reserved.