Menù a tendina collegato a database

AndreaBet

Nuovo Utente
5 Giu 2020
19
0
1
23
Treviso
Salve a tutti, sono uno studente al 5' anno di superiori e mi sto dedicando alla preparazione dell'elaborato di informatica ed economia da presentare all'esame.
Tra le varie cose avevo in programma di creare una pagina web in cui un ipotetico dipendente dell'azienda possa aggiungere un ordine il quale viene poi inserito in un database localizzato in phpmyadmin.
Per fare questo avevo idea di creare un form in cui inserire tutti i dati richiesti (IDcliente, Data, CodiceBene ecc) e in particolare per quanto riguarda il Codice del Bene volevo fare un menù a tendina il quale riprendesse i codici dei prodotti già inseriti nel database.
Sfortunatamente chiedendo aiuto al professore non ho avuto alcun riscontro, come d'altronde accaduto per tutto il percorso scolastico, pertanto non sono riuscito a risolvere il problema che mi si è presentato.

Come vedrete dal codice che allegherò ho già tentanto di creare il menù a tendina ma poi nella pagina web esso, seppur sia presente, risulta vuoto e non ne capisco il motivo. Probabilmente si tratta di un errore banale per il quale risulterò uno sciocco ma dopo tentativi durati un'intera giornata ho perso le speranze.

PHP:
 <body>   
  <?php
    if(!isset($_POST["reg"])){
  ?>

  <form method="POST">
    IDcliente <input type="text" name="id"/> </br>
    Data <input type="date" name="data"/> </br>
    CodiceBene <select name="CodBene">
  
  <?php
        exit;
    }
    $c = new mysqli("localhost","root","","elaborato");
    if ($c->connect_error)
       die( "Errore di connessione al database <br/>" );
    echo "Connessione al database avvenuta <br/>";
        $s = "SELECT CodiceBene, Nome FROM Beni";
        $r=mysql_query($s);
        while ($row=mysql_fetch_assoc($r)){
            $codice=$row['CodiceBene'];
            $nome=$row['NomeBene'];
            echo "<option value='$codice'>$nome</option>";
        }
 ?>
    </select>
    Quantit&agrave; <input type="number" name="nm"/> </br>
    Prezzo <input type="number" name="prezzo"/> </br>
    IDcorriereFK <input type="text" name="corriere"/> </br>
    <input type="submit" name="reg" value="Registra"> </br>
    </form>
 </body>

Dal risultato che compare su localhost è evidente come l'esecuzione del codice si blocchi all'inizio del Select e non proceda. Lascio in allegato uno screen di ciò.
 

Allegati

  • Prova.png
    Prova.png
    4,7 KB · Visite: 410
forse perchè da mysqli passi a mysql, vedi

$c = new mysqli("localhost","root","","elaborato");

while ($row=mysql_fetch_assoc($r)){
 
forse perchè da mysqli passi a mysql, vedi

$c = new mysqli("localhost","root","","elaborato");

while ($row=mysql_fetch_assoc($r)){

Grazie mille per la tua risposta, ho proceduto a correggere ponendo al posto di mysql mysqli e viceversa ma sfortunatamente nulla, il risultato rimane invariato.
 
c'é anche questa
$r=mysql_query($s);

riguardati tutto il codice e usa le funzioni proprie di mysqli o mysql non un misto
 
Grazie per le vostre risposte, ho corretto ma nuovamente le cose non sono cambiate. Lascio il codice aggiornato sotto
PHP:
  <body>   
 
  <?php
    if(!isset($_POST["reg"])){
  ?>

  <form method="POST">
    IDcliente <input type="text" name="id"/> </br>
    Data <input type="date" name="data"/> </br>
    CodiceBene <select name="codbene">
 
  <?php
        exit;
    }
    $c = new mysqli("localhost","root","","elaborato");
    if ($c->connect_error)
       die( "Errore di connessione al database <br/>" );
    echo "Connessione al database avvenuta <br/>";
        $s = "SELECT CodiceBene, Nome FROM Beni";
        $r=mysqli_query($s);
        while ($row=mysqli_fetch_assoc($r)){
            $codice=$row['CodiceBene'];
            $nome=$row['Nome'];
            echo "<option value='$codice'>$nome</option>";
        }
 ?>
    </select>
    Quantit&agrave; <input type="number" name="nm"/> </br>
    Prezzo <input type="number" name="prezzo"/> </br>
    IDcorriereFK <input type="text" name="corriere"/> </br>
    <input type="submit" name="reg" value="Registra"> </br>
    </form>
 </body>
 
Probabilmente è un problema di connessione al database, il resto mi sembra giusto. Controlla che si connetta.
 
La connessione avviene senza problemi. Non so se sia una mia impressione ma mi sembra quasi che il codice a partire dal secondo php non venga minimamente preso in considerazione. Infatti nemmeno gli elementi del select 'Quantità', 'Prezzo' ecc compaiono
 
Dato che ci sono approfitto della vostra super disponibilità! Ho pensato di calcolare il prezzo totale dell'ordine reperendo il prezzo del bene e moltiplicandolo per la quantità. Per fare questo basta che con una query reperisca il prezzo del bene e poi lo moltiplichi alla quantità inserita nel form? Ora provo a cimentarmi nel codice e poi in caso se trovo difficoltà (cosa altamente probabile) vi farò sapere
 

Discussioni simili