Menu déroulant PHP sur base de donnée

Résolu/Fermé
Arthofixion02 Messages postés 2 Date d'inscription jeudi 13 janvier 2022 Statut Membre Dernière intervention 13 janvier 2022 - 13 janv. 2022 à 15:27
Arthofixion02 Messages postés 2 Date d'inscription jeudi 13 janvier 2022 Statut Membre Dernière intervention 13 janvier 2022 - 13 janv. 2022 à 17:49
Bonjour,
Pour un projet en informatique, j'ai une base de donnée sur MySQL créée sur UwAMP. Ensuite nous devons créé un "mini" site pour ajouter des données aux différentes tables. Pour mon projet j'ai besoin d'ajouter un alcool qui appartient à un type (Vodka, Whisky...) et lorsque j'ajoute une boisson j'aimerai créé un menu déroulant qui affiche le nom du type. Jusque là le menu déroulant s'affiche mais quand j'ajoute le soft impossible j'ai une erreur. J'envoie en pièce jointe des photos pour aider la compréhension. Merci d'avance pour votre aide.


Code du menu pour ajouter l'alcool
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8_general_ci">
</head>
<body>
<h1>Ajouter un alcool</h1>


<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "le bistrot";
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

?>

<form method="post" action="ajouter_alcool.php">
<label>Nom</label> <input type="text" name="nom_alcool"><br>
<label>Degré</label> <input type="number" name="degre"><br>
<label>Provenance</label> <input type="text" name="provenance"><br>

<label>Type</label>
<select name="nom_type">
<?php

$sql = "SELECT id_type, nom_type FROM type";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
echo "<option value=" . $row["id_type"] . ">" . $row["nom_type"] . "</option><br>";
}
} else {
echo "0 results";
}
?>
</select><br>

<br><br>
<input type="submit" value="Ajouter">
</form>
</body>
</html>


Code qui fait appelle à la table ajouter_alcool:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8_general_ci">
</head>
<body>
<h1>Ajouter un alcool</h1>

<?php

$v1=$_POST['nom_alcool'];
$v2=$_POST['degre'];
$v3=$_POST['provenance'];
$v4=$_POST['id_type'];

$mysqli = new mysqli("localhost", "root", "root", "le bistrot");
$mysqli -> set_charset("utf8");

$requete1 = "SELECT id_alcool FROM alcool";
$resultat1 = $mysqli -> query($requete1);
$nombre = mysqli_num_rows($resultat1) + 1;
echo $nombre;

$requete="INSERT INTO alcool VALUES($nombre, '$v1', '$v2', '$v3', '$v4')";
$resultat = $mysqli -> query($requete);
if ($resultat)
echo "<p>L'alcool a été ajouté</p>";
else
echo "<p>Erreur</p>";
?>

</body>
</html>


Configuration: Windows / Chrome 97.0.4692.71
A voir également:

2 réponses

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
13 janv. 2022 à 16:13
Bonjour,

Fais donc un var_dump($_POST); au début de ton code pour voir ce que contient la variable $_POST
tu devrais voir qu'en effet.. il n'existe aucune entrée avec comme clé id_type....

Vu que ta liste déroulante ( le <select> ) à pour attribut name nom_type
<select name="nom_type">

c'est cette variable qu'il faut donc utiliser.


1
Arthofixion02 Messages postés 2 Date d'inscription jeudi 13 janvier 2022 Statut Membre Dernière intervention 13 janvier 2022
13 janv. 2022 à 17:49
En effet je venais tout juste de trouver l'erreur,
Merci beaucoup pour votre réponse rapide!
0