Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77

    Menu tendina dati mysql

    Ciao a tutti, ho un problema con un menu a tendina in php che deve prelevare dati da una base dati mysql.
    Questa è la tabella Professori contenuta nel database docenti
    CodP Nome Cognome DataNascita NumCel
    1 Luca Rossi 1954-12-01 NULL
    2 Marco Verdi 1960-11-15 NULL
    3 Paolo Neri 1965-01-23 NULL
    4 Sara Bianchi 1970-02-28 NULL

    Devo fare un menu a tendina che visualizza l'elenco dei cognomi. Sapete aiutarmi?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Sai eseguire una query e recuperare dei dati?

    Esegui una select sulla tabella prendendo i cognomi, poi con un foreach popoli il menu a tendina.

    Non ti do il codice volutamente, in modo che tu ci metta del tuo e quindi impari come si fa, invece di fare un copia/incolla con cui non impareresti niente o giù di lì.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77
    Codice PHP:
    <html>  <head>  <?   <?php /* CONNESSIONE AL DB*/  if( !mysql_connect("localhost","root","") ){   die('Connect error: ' mysql_error());}  if( !mysql_select_db("docenti") ){   die('Select error: ' mysql_error());}   ?> <title>Prova</title> <style> body{ font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;} </style> </head> <body> <form id="form1" name="form1" method="post" action=""> <table width="500px" border="0" cellpadding="5">   <tr>     <td>Cliente</td>     <td>     <select>     <?php           //Recupero i dati dal DB $query = "SELECT Cognome "         . "FROM 'Professori' "         . "ORDER BY 'Cognome'";  $result = mysql_query($query);      while ($row = mysql_fetch_assoc($result)){         $myfield_1 = $row['myfield_1'];         echo "\t<option value=\"$myfield_1</option>\n"; } ?>        </select>     </td>     </tr>  </table>  </form> </body> </html>
    Ti ringrazio, io sono riuscito a fare ciò, e come vedrai è sbagliato. Sai aiutarmi? grazie! So eseguire una query ma non recuperare i dati

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Edita il post e riformatta il testo, tutto su una riga non si capisce.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77
    Codice PHP:
    <html>
     <head>
      <?
       
    <?php /* CONNESSIONE AL DB*/ 
     
    if( !mysql_connect("localhost","root","") ){   die('Connect error: ' mysql_error());}  if( !mysql_select_db("docenti") ){   die('Select error: ' mysql_error());}
      
    ?>
     <title>Prova</title>
     <style> body{ font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;}
     </style>
     </head>
     <body>
     <form id="form1" name="form1" method="post" action="">
     <table width="500px" border="0" cellpadding="5">
     <tr>
      <td>Cliente</td>
      <td>
      <select>   
      <?php
      
    //Recupero i dati dal DB
     
    $query "SELECT Cognome FROM Professori ORDER BY Cognome"
     
    $result mysql_query($query);
     while (
    $row mysql_fetch_assoc($result)){         $myfield_1 $row['myfield_1'];
     echo 
    "\t<option value=\"$myfield_1</option>\n"; } ?>
     </select>    
     </td>    
     </tr> 
     </table> 
     </form>
     </body>
     </html>

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    $myfield_1 = $row['myfield_1'];

    Il campo che recuperi si chiama cognome, non myfield_1, quindi
    $myfield_1 = $row['cognome'];
    ad ogni modo quell'assegnazione non ti serve, puoi usare direttamente
    $row['cognome']

    Inoltre sbagli a generare la stringa, ti viene una cosa del tipo
    <option value='pippo</option>
    che è chiaramente sbagliata

    usa questa
    Codice PHP:
    echo "<option value='".$row['cognome']."'>".$row['cognome']."</option>"

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77
    Ti ringrazio sapevo di aver sbagliato qualcosa. Purtroppo non mi popola la tendina...
    Codice PHP:
    <html>

    <head>

    <?
      
    <?php
    /* CONNESSIONE AL DB*/

    if( !mysql_connect("localhost","root","") ){
      die(
    'Connect error: ' mysql_error());}

    if( !
    mysql_select_db("docenti") ){
      die(
    'Select error: ' mysql_error());}
      
    ?>
    <title>Prova</title>
    <style>
    body{
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size:12px;}
    </style>
    </head>
    <body>
    <form id="form1" name="form1" method="post" action="">
    <table width="500px" border="0" cellpadding="5">
      <tr>
        <td>Cliente</td>
        <td>
        <select>
        <?php 
        
        
    //Recupero i dati dal DB
    $query "SELECT Cognome "
            
    "FROM 'Professori' "
            
    "ORDER BY 'Cognome'";

    $result mysql_query($query);

        while (
    $row mysql_fetch_assoc($result)){
            
    $row['cognome'];
            echo 
    "<option value='".$row['Cognome']."'>".$row['Cognome']."</option>";
    }
    ?>  
         </select>
        </td>
     
      </tr>

    </table>

    </form>
    </body>
    </html>
    Ti posto il codice
    Grazie!

  8. #8
    Originariamente inviato da ste902
    Codice PHP:
    ...
    $query "SELECT Cognome "
            
    "FROM 'Professori' "
            
    "ORDER BY 'Cognome'";
    ... 
    E come mai, rispetto al codice precedente, hai messo gli apici attorno ai nomi di tabelle e colonne?! Hai preso iniziativa???
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77
    lo stavo notando anche io adesso, prima nell'altro computer usavo il blocco note. Su questo pc ho usato hapedit e per non so quale motivo me li ha aggiunti. Chiedo perdono! Infatti cosi funziona! Grazie davvero

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Codice PHP:
     <?php 
    //Non ci vanno gli apici attorno ai nomi dei campi o delle tabelle
    //gli apici servono solo a delimitare una stringa
    //al limite dovresti usare questo ` che è diverso dagli apici che hai usato tu
    $query "SELECT Cognome "
            
    "FROM Professori "
            
    "ORDER BY Cognome";

    $result mysql_query($query);

    while (
    $row mysql_fetch_assoc($result)){
        echo 
    "<option value='".$row['Cognome']."'>".$row['Cognome']."</option>";
    }
    ?>
    Comunque, tieni presente che se come value delle option ci metti la stringa contenente il cognome, in caso di persone con lo stesso cognome avrai problemi, una futura update fatta selezionando la entry in base al cognome ti modificherà sia quella che veramente vuoi modificare, sia tutte quelle che presentano lo stesso cognome.
    Invece nel caso in cui quelle option ti servano per effettuare una select, ti verranno selezionate più entry invece della sola che ti interessa.
    Come value dovresti usare il campo CodP.

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