Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Group by non funzionante per un utente

    Nel db la tabella contiene un campo con il nome del docente, a cui sono associate le rispettive classi con la materia. La materia può dunque ripetersi più volte (se insegna in più materie).
    In un menu a tendina devo visualizzare le materie del docente una sola volta: ho adoperato ovviamente il GROUP BY, ma con un docente non funziona alla perfezione, una materia viene mostrata per due volte. Nel db sono scritte alla stessa maniera (ho controllato più volte), quindi in teoria doveva prenderlo una sola volta.
    Non credo sia nel codice l'errore, ma lo inserisco per far capire come funziona:

    Codice PHP:
    echo "<select name='materia'>";
                                
    $q="SELECT * FROM `Docenti` WHERE `Docente_login`='{$_SESSION['login']}' GROUP BY Docente_materia_competenza ORDER BY Docente_materia_competenza";
                                
    $query=mysql_query($q) or die (mysql_error());
                                while(
    $row=mysql_fetch_array($query)){
                                                              
    $materia=$row["Docente_materia_competenza"];
                                                              echo 
    "<option value='$materia'>$materia</option>
    "
    ;
                                                            }
                                                           echo 
    "</select>"

  2. #2
    prova a mettere un trim() sul campo. potresti avere uno spazio o altro.

    group by trim(Docente_materia_competenza)

    questo dovrebbe anche suggerirti di usare una tabella con la lista dei docenti e associare alle materie solo l'id_docente. Non avresti di queste incongruenze cioe' valori duplicati scritti in modo differente.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Già, ma purtroppo il db me lo sono trovato così da migrare e rifare da capo queste tabelle sarebbe da suicidio
    Mi devo adattare. A ogni modo con il trim() funziona: a quanto pare c'era uno spazio, infatti l'ho sovrascritto con l'altra materia di nome identico e ora è perfetta.
    Grazie

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.