• User

    Domanda apparentemente stupida...

    Ciao a tutti! 😄 Per la seconda volta ho bisogno del vostro aiuto...
    Come faccio a fare un inserimento in un DB con menu a tendina come in Access?
    E poi come faccio a visualizzarla in un'altra pagina utilizzando dei valori sempre sfruttando questo tipo di menu? E' davvero un casino... Grazie in anticipo per le vostre risposte!


  • ModSenior

    Dici menu come la barra del nostro Forum?
    Quello con il nick in arancione?


  • User

    Esattamente come quello, ma non a comparsa della tendina al passaggio!


  • User

    Ah! Ho dimenticato di indicare che i dati del menu devono essere importati dal DB in modo automatico (attraverso inserimento normalissimo per intenderci)!


  • ModSenior

    Ciao SantuzzoHendrix,
    puoi usare un input di tipo select per creare il form.


  • User

    Ah! Quindi con una query semplicissima?


  • ModSenior

    No, per select intendevo questo:

    
    <select name="auto">
                  <option value="volvo">Volvo</option>
                  <option value="saab">Saab</option>
                  <option value="mercedes">Mercedes</option>
                  <option value="audi">Audi</option>
          </select>    
    
    

  • User

    Ah! Ok... Ma se volessi prendere da DB devo fare:

    while ($row = mysql_fetch_assoc($result)) //$result è la query di selezione
    {
    $auto = htmlentities($row['Auto']);
    <select name="auto">
    <option><?php echo $auto ?></option>
    <?php
    }

    Giusto?


  • ModSenior

    Non proprio, sarebbe cosi:
    [php]
    echo '<select name="auto">';
    while ($auto = mysql_fetch_assoc($result)) //$result è la query di selezione
    echo '<option value="'.$auto['id'].'">'.$auto['nome'].'</option>';
    echo '</select>';
    [/php]Deve essere inserito dentro il form per essere inviato.


  • User

    Ah! Ok... Grazie!


  • User

    E se volessi inserirli in una tabella?


  • ModSenior

    Beh è uguale, devi ciclarli per creare le righe come vuoi tu.


  • User

    Per la tabella ho risolto così:

    <?php
    $sql = " ";
    $sql = "SELECT * FROM strum;";
    $result = mysql_query($sql);
    ?>
    <tr>
    <td align="center">Strumento utilizzato ></td>
    <td align="center"><?php echo '<select name="strumento">';
    while ($strumento = mysql_fetch_assoc($result))
    echo '<option value="'.$strumento['Matricola_strumento'].'">'.$strumento['Strumento'].'</option>';
    echo '</select>'; ?></td>
    </tr>

    Ma ora per visualizzare i dati inseriti così?


  • ModSenior

    Beh sono sempre query per inserire e recuperare i dati dal database, dovresti studiare come funzionano le query.


  • User

    Ah, quindi prendo la scelta e la inserisco nella query come adesso... Penso che il MySQL e il PHP siano i migliori linguaggi di programmazione che siano mai stati costruiti! XD


  • User

    Ho bisogno un'ultima volta...

    Questo è il mio codice della prima pagina php:

    <html lang="en">
    <head>
    <title>Visualizzazione strumenti</title>
    </head>
    <body>
    <marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
    <br />
    <br />
    <script language="JavaScript">
    <!--
    data = new Date();
    ora =data.getHours();
    minuti=data.getMinutes();
    giorno = data.getDay();
    mese = data.getMonth();
    date= data.getDate();
    year= data.getYear();
    if(minuti< 10)minuti="0"+minuti;
    if(year<1900)year=year+1900;
    if(ora<10)ora="0"+ora;
    if(giorno == 0) giorno = " DOMENICA ";
    if(giorno == 1) giorno = " LUNEDI' ";
    if(giorno == 2) giorno = " MARTEDI' ";
    if(giorno == 3) giorno = " MERCOLEDI' ";
    if(giorno == 4) giorno = " GIOVEDI' ";
    if(giorno == 5) giorno = " VENERDI' ";
    if(giorno == 6) giorno = " SABATO ";
    if(mese == 0) mese = "GENNAIO ";
    if(mese ==1) mese = "FEBBRAIO ";
    if(mese ==2) mese = "MARZO ";
    if(mese ==3) mese = "APRILE ";
    if(mese ==4) mese = "MAGGIO ";
    if(mese ==5) mese = "GIUGNO ";
    if(mese ==6) mese = "LUGLIO ";
    if(mese ==7) mese = "AGOSTO ";
    if(mese ==8) mese = "SETTEBRE ";
    if(mese ==9) mese = "OTTOBRE ";
    if(mese ==10) mese = "NOVEMBRE ";
    if(mese ==11) mese = "DICEMBRE ";
    document.write("OGGI E' "+giorno+" "+date+" "+mese+" "+year+" - ORA "+ora+":"+minuti);
    //-->
    </script>
    <br />
    <br />
    <?php
    $conn = mysql_connect("localhost","root","");
    if (!$conn)
    {
    die('Connessione mancata con il root. Errore: ' . mysql_error());
    }
    $select = mysql_select_db("sabicom",$conn);
    if (!$select)
    {
    die("Errore nella connessione con il database. Errore: " . mysql_error());
    }
    $sql = "SELECT * FROM fornitori;";
    $result = mysql_query($sql);
    if (!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    ?>
    <table border="1" width="100%">
    <tr>
    <td align="center">Fornitore</td>
    <td align="center"><?php echo '<select name="fornitore">';
    while ($fornitore = mysql_fetch_assoc($result))
    echo '<option value="'.$fornitore['Matricola_fornitore'].'">'.$fornitore['Fornitore'].'</option>';
    echo '</select>'; ?></td>
    <?php
    $sql = "SELECT * FROM marca;";
    $result = mysql_query($sql);
    if (!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    ?>
    <td align="center">Marca</td>
    <td align="center"><?php echo '<select name="marca">';
    while ($marca = mysql_fetch_assoc($result))
    echo '<option value="'.$marca['Matricola_marca'].'">'.$marca['Marca'].'</option>';
    echo '</select>'; ?></td>
    <?php
    $sql = "SELECT * FROM utilizzatore;";
    $result = mysql_query($sql);
    if (!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    ?>
    <td align="center">Utilizzatore</td>
    <td align="center"><?php echo '<select name="utilizzatore">';
    while ($utilizzatore = mysql_fetch_assoc($result))
    echo '<option value="'.$utilizzatore['ID'].'">'.$utilizzatore['Utilizzatore'].'</option>';
    echo '</select>'; ?></td>
    <?php
    $sql = "SELECT * FROM strum;";
    $result = mysql_query($sql);
    if (!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    ?>
    <td align="center">Strumento</td>
    <td align="center"><?php echo '<select name="strumento">';
    while ($strumento = mysql_fetch_assoc($result))
    echo '<option value="'.$strumento['Matricola_strumento'].'">'.$strumento['Strumento'].'</option>';
    echo '</select>'; ?></td>
    </tr>
    </table>
    <form method="post" action="visual.php">
    <input type="submit" value="Visualizza" />
    </form>
    <br />
    <br />
    <form method="post" action="index.html">
    <div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
    </form>
    </body>
    </html>

    Questa è invece la seconda dove mi fa' visualizzare i dati:

    <html lang="en">
    <head>
    <title>Visualizzazione strumenti</title>
    </head>
    <body>
    <marquee width="100%" direction="left" scrollamount="8"><img src="img/logo.jpg" /></marquee>
    <br />
    <br />
    <script language="JavaScript">
    <!--
    data = new Date();
    ora =data.getHours();
    minuti=data.getMinutes();
    giorno = data.getDay();
    mese = data.getMonth();
    date= data.getDate();
    year= data.getYear();
    if(minuti< 10)minuti="0"+minuti;
    if(year<1900)year=year+1900;
    if(ora<10)ora="0"+ora;
    if(giorno == 0) giorno = " DOMENICA ";
    if(giorno == 1) giorno = " LUNEDI' ";
    if(giorno == 2) giorno = " MARTEDI' ";
    if(giorno == 3) giorno = " MERCOLEDI' ";
    if(giorno == 4) giorno = " GIOVEDI' ";
    if(giorno == 5) giorno = " VENERDI' ";
    if(giorno == 6) giorno = " SABATO ";
    if(mese == 0) mese = "GENNAIO ";
    if(mese ==1) mese = "FEBBRAIO ";
    if(mese ==2) mese = "MARZO ";
    if(mese ==3) mese = "APRILE ";
    if(mese ==4) mese = "MAGGIO ";
    if(mese ==5) mese = "GIUGNO ";
    if(mese ==6) mese = "LUGLIO ";
    if(mese ==7) mese = "AGOSTO ";
    if(mese ==8) mese = "SETTEBRE ";
    if(mese ==9) mese = "OTTOBRE ";
    if(mese ==10) mese = "NOVEMBRE ";
    if(mese ==11) mese = "DICEMBRE ";
    document.write("OGGI E' "+giorno+" "+date+" "+mese+" "+year+" - ORA "+ora+":"+minuti);
    //-->
    </script>
    <br />
    <br />
    <?php
    $conn = mysql_connect("localhost","root","");
    if (!$conn)
    {
    die('Connessione mancata con il root. Errore: ' . mysql_error());
    }
    $select = mysql_select_db("sabicom",$conn);
    if (!$select)
    {
    die("Errore nella connessione con il database. Errore: " . mysql_error());
    }
    if (isset($_POST['fornitore']))
    {
    $fornitori = $_POST['fornitore'];
    $sql = "SELECT * FROM strumenti WHERE Venduto_Dismesso = '2' AND ID = '".mysql_real_escape_string($fornitori)."' ORDER BY Utilizzatore;";
    $result = mysql_query($sql);
    if (!$result)
    {
    die('Errore durante il trasferimento dei dati');
    }
    ?>
    <table border="1" align="center" bordercolor="lightblue">
    <tr>
    <td align="center">Fornitore</td>
    <td align="center">Assistenza</td>
    <td align="center">Utilizzatore</td>
    <td align="center">Strumento</td>
    <td align="center">Marca</td>
    <td align="center">Modello</td>
    <td align="center">Descrizione</td>
    <td align="center">Venduto / Dismesso</td>
    <td align="center">Data di acquisizione</td>
    </tr>
    <?php
    while ($row = mysql_fetch_assoc($result))
    {
    $fornitore = htmlentities($row['Fornitore']);
    $assistenza = htmlentities($row['Assistenza']);
    $utilizzatore = htmlentities($row['Utilizzatore']);
    $strumento = htmlentities($row['Strumento']);
    $marca = htmlentities($row['Marca']);
    $modello = htmlentities($row['Modello']);
    $descrizione = htmlentities($row['Descrizione']);
    $vend_dism = htmlentities($row['Venduto_Dismesso']);
    $data_acquis = htmlentities($row['Data_acquisizione']);
    ?>
    <tr>
    <td align="center"><?php echo $fornitore ?></td>
    <td align="center"><?php echo $assistenza ?></td>
    <td align="center"><?php echo $utilizzatore ?></td>
    <td align="center"><?php echo $strumento ?></td>
    <td align="center"><?php echo $marca ?></td>
    <td align="center"><?php echo $modello ?></td>
    <td align="center"><?php echo $descrizione ?></td>
    <td align="center"><?php echo $vend_dism ?></td>
    <td align="center"><?php echo $data_acquis ?></td>
    </tr>
    <?php
    }?>
    </table>
    <?php
    mysql_free_result($result);
    mysql_close();
    }
    else
    {
    echo 'Errore. Nessun dato selezionato. ';?>
    <form action="search-visual.php" method="post">
    <input type="submit" value="Torna alla pagina precedente" />
    </form>
    <?php
    }
    ?>
    <br />
    <br />
    <form method="post" action="index.html">
    <div align="right"><input type="submit" value="Vai alla pagina principale" /></div>
    </form>
    </body>
    </html>

    Ma nonostante abbia inserito solo Fornitore come controllo nella seconda pagina e inoltre nella prima ho inserito in maniera corretta sempre il fornitore, mi da sempre:

    Errore. Nessun dato selezionato.

    Come è possibile?


  • ModSenior

    Il select non è all'interno del form per cui non viene inviato.