Probleme pour entrer donnees a partir d un menu deroulant

Résolu/Fermé
Yannick - 26 mai 2020 à 09:56
 Yannick - 26 mai 2020 à 17:10
Bonjour,
J'ai fait un script PHP pour inserer des donnees dans une base de donnee SQL a partir d'un formulaire HTML, une donnee est inseree a partir d'une table (on ecris les donnees en text a l'aide du clavier) une autre a partir d'un menu deroulant fixe et la troisieme a l'aide d'un menu deroulant qui utilise les donnees d'une autre table.
Seule la donnee que j'insere avec mon clavier est bien remontee dans ma base de donnee.
Auriez vous une idee?

Le script "Formulaire":

<code php>
$hostname="localhost";
$db="database name";
$Username="username";
$Password="Password";

$conn=new PDO("mysql:host=$hostname;dbname=$db",$Username,$Password);
$sql="select Aliment from Containers";

try
{
$stmt=$conn->prepare($sql);
$stmt->execute();
$results=$stmt->fetchAll();
}
catch(Exception $ex)
{
echo($ex-> getMessage());
}
?>

<html>



<center>

<form action="log.php" method="post">

<table>

<tr>
<td>Nom:<td>

<p><select size="1" name="uid">
<option selected value="valeur 1">YNR</option>
<option value="valeur 2">FZ</option>
<option value="valeur 3">KR</option>
</select></p>

Nom="$Nom"
</tr>


<tr>
<td>Aliment:<td>
<td><input type="text" name="Aliment">
</tr>

<tr>
<td>Quantite:<td>
<td><input type="text" name="Quantite">
</tr>


<label>Aliment:
<select>
<option>--Select Aliment --</option>
<?php foreach ($results as $output){?>
<option><?php echo $output["Aliment"];?></option>


<?php } ?>
</select>
</label>
</center>
</html>

<tr>
<td><input type="submit" name="submit" value="Add"></td>
</tr>
</table>

</form>


</body>
</html>

<?php


et le scrip pour entrer les donnees dans la base (log.php):

<?php

$dbconnect=mysqli_connect('localhost','user',password','Nouriture');

if(mysqli_connect_errno($dbconnect)){
echo "Failed to connect";
}
else{
echo "connection successfull";
}



$con = mysqli_connect('localhost','user','password');

if (!$con)
{
echo 'Not Connected To Server';
}
if(!mysqli_select_db($con,'Nouriture'))
{
echo 'Database Not Selected';
}
$Aliment = $_POST['Aliment'];
$Quantite = $_POST['Quantite'];
$Nom = $_POST['Nom'];

$sql =mysqli_query($dbconnect, "insert into dailylog(Aliment,Quantite,Nom) values('$Aliment','$Quantite','$Nom')");

if($sql){
echo "data inserted successfully";
}
else {
echo "failed to insert";
}

header("refresh:2; url=logjournalier3.php");

?>

<?php





Je vous remercie d'avance!
Y


Configuration: Windows / Chrome 81.0.4044.138

5 réponses

yg_be Messages postés 21059 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 janvier 2023 1 307
26 mai 2020 à 10:32
bonjour,
peux-tu utiliser les balises de code quand tu postes du code? (https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code)
peux-tu être plus précis, et indiquer le nom de la donnée qui n'est pas insérée?
peux-tu ajouter
print_r ($_POST);
dans ta page log.php, cela te permettra de voir le retour du formulaire.
peux-tu aussi partager la source html de la page formulaire?
0
Merci pour votre reponse!
Oui desole pour la balise de code je pense que je n'ai pas insere la bonne...
J ai rajoute print_r($_POST); et j'ai le message suivant:
"connection successfuldatainserted successfullyArray ([uid]=>valeur 3[Aliment]=>2 [submit]=>Add)"
J ai 3 donnees:
-Nom
-Aliment
-Quantite (le seul a etre bien insere)

Je n'ai pas d'autre source html, ce que j'ai poste ci dessus ce sont les 2 seuls scripts que j'ai.
0
yg_be Messages postés 21059 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 janvier 2023 1 307
26 mai 2020 à 10:54
regarde bien le résultat du print_r: je n'y vois qu'Aliment, alors que tu indiques que Quantite est bien inséré. Bizarre, non?
La source HTML de la page, tu l'obtiens dans le navigateur, au moment où la page est affichée.
Je suggère que tu commences par des exercices plus simples, avec des formulaires et des pages php plus simples, pour apprendre.
0
Rebonjour et merci pour ton aide!
Dans ma table c est bien insere en effet Quantite, mais pas Aliment et Nom
Voici la source HTML
<html> 
	
	
	
	<center> 
	
	<form action="log.php" method="post"> 
	
	<table> 
	
	<tr> 
	<td>Nom:<td> 
	
	<p><select size="1" name="uid"> 
	<option selected value="valeur 1">YNR</option> 
	<option value="valeur 2">FZ</option> 
	<option value="valeur 3">KR</option> 
	</select></p> 
	
	Nom="$Nom" 
	</tr> 
	
	
	<tr> 
	<td>Aliment:<td> 
	<td><input type="text" name="Aliment"> 
	</tr> 
	
	<tr> 
	<td>Quantite:<td> 
	<td><input type="text" name="Quantite"> 
	</tr> 
	
	
	<label>Aliment: 
	<select> 
	<option>--Select Aliment --</option> 
	<option>Banane 18cm</option> 
	
	
	<option>Pomme 7cm</option> 
	
	
	<option>Avocat</option> 
	
	
	<option>Ritz 100g</option> 
	
	
	<option>Pasta All weat 100g</option> 
	
	
	<option>Bar Yoga</option> 
	
	
	<option>Bat Atkins</option> 
	
	
	<option>Chia Seeds 38g</option> 
	
	
	<option>Yahourt Activia Fruit</option> 
	
	
	<option>Thon Rio 80g</option> 
	
	
	<option>Compote pruno pomme 100g</option> 
	
	
	<option>Vitamine C swiss</option> 
	
	
	<option>Pain </option> 
	
	
	<option>Saumon fume 100g</option> 
	
	
	<option>Viande beuf</option> 
	
	
	<option>Huile Olive</option> 
	
	
	<option>Tomates</option> 
	
	
	<option>Oignon</option> 
	
	
	<option>Poids Chiche</option> 
	
	
	<option>Courgette</option> 
	
	
	<option>Choux</option> 
	
	
	<option>Potiron Pumpkin</option> 
	
	
	<option>carottes</option> 
	
	
	<option>Semoule</option> 
	
	
	<option>Coco Oil</option> 
	
	
	<option>patate douce sweet potatoe</option> 
	
	
	<option>Sweet Potatoes</option> 
	
	
	<option>Couscous FZ</option> 
	
	
	<option>abricot sec</option> 
	
	
	<option>Dates</option> 
	
	
	<option>Chia seeds</option> 
	
	
	<option>Amandes</option> 
	
	
	<option>Graines de Tournesol</option> 
	
	
	<option>cacao Nips</option> 
	
	
	<option>Graines de Sesame</option> 
	
	
	<option>Ail</option> 
	
	
	<option>Raisin Sec</option> 
	
	
	<option>Betterave rouge</option> 
	
	
	<option>Persil</option> 
	
	
	<option>Poivre</option> 
	
	
	<option>Cumin</option> 
	
	
	<option>Banane</option> 
	
	
	<option>Pomme</option> 
	
	
	<option>Avocat</option> 
	
	
	<option>Saumon</option> 
	
	
	<option>Ritz long grain brown rice</option> 
	
	
	<option>Oeuf</option> 
	
	
	<option>Chocolat Noir carre</option> 
	
	
	<option>Pain Baguette carrefour All Meal</option> 
	
	
	<option>Myrtilles</option> 
	
	
	<option>Fromage Brie paysan breton</option> 
	
	
	<option>Fromage chevre</option> 
	
	
	<option>Fromage gruyere</option> 
	
	
	<option>Camenbert</option> 
	
	
	<option>organic wholemeal bread floor (Waitrose uchy)</option> 
	
	
	<option>Framboises</option> 
	
	
	</select> 
	</label> 
	</center> 
	</html> 
	
	<tr> 
	<td><input type="submit" name="submit" value="Add"></td> 
	</tr> 
	</table> 
	
	</form> 
	
	
	</body> 
	</html>

0
yg_be Messages postés 21059 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 janvier 2023 1 307
26 mai 2020 à 11:55
ce qui confirme ma recommendation: commence par des exercices plus simples, avec des formulaires et des pages php plus simples, pour apprendre.
0
jordane45 Messages postés 36860 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 janvier 2023 4 465
26 mai 2020 à 12:10
Bonjour,

le code HTML est complètement foireux...
- Des balises tr et td non fermées
- pas de balise ouvrante <body>
- une balise fermante </html> placée au pif n'importe où ..
- Des attributs NAME manquants ( c'est pour ça que certains champs ne te remontent rien dans ton $_POST )

- un "$Nom" qui apparait là comme ça.... sans echo ... sans être dans un champ html... donc.. qui ne sert à rien.

Là il y a un gros travail d'apprentissage à faire....

La programmation... c'est avant tout de la rigueur ... on ne peut pas écrire des lignes au pif et penser que ça va marcher.


Histoire de t'aider un peu.. voici un peu ton code html corrigé.
<html> 
  <head>
    <meta charset="utf-8">
    <title>test</title>
  </head>
  <body>
    <center> 
      <form action="log.php" method="post"> 
        <table> 
          <tr> 
            <td>Nom:</td>
            <td>
              <input type="text" name="Nom" value=<?php echo $Nom; ?>">
            <td>
          </tr>
          <tr>
            <td>UID :</td>
            <td>
              <select size="1" name="uid"> 
              <option selected value="valeur 1">YNR</option> 
              <option value="valeur 2">FZ</option> 
              <option value="valeur 3">KR</option> 
              </select>
            </td>
          </tr> 
          <tr> 
            <td>Aliment:</td> 
            <td>
              <input type="text" name="Aliment"> 
            </td>
          </tr> 
          <tr> 
            <td>Quantite:<td> 
            <td>
              <input type="text" name="Quantite"> 
            </td>
          </tr>
          <tr>          
            <td>
              <label>Aliment:</label> 
            </td>
            <td>
              <select name="aliment"> 
                <option>--Select Aliment --</option> 
                <option>Banane 18cm</option> 
                <option>Pomme 7cm</option> 
                <option>Avocat</option> 
                <option>Ritz 100g</option> 
                <option>Pasta All weat 100g</option> 
                <option>Bar Yoga</option> 
                <option>Bat Atkins</option> 
                <option>Chia Seeds 38g</option> 
                <option>Yahourt Activia Fruit</option> 
                <option>Thon Rio 80g</option> 
                <option>Compote pruno pomme 100g</option> 
                <option>Vitamine C swiss</option> 
                <option>Pain </option> 
                <option>Saumon fume 100g</option> 
                <option>Viande beuf</option> 
                <option>Huile Olive</option> 
                <option>Tomates</option> 
                <option>Oignon</option> 
                <option>Poids Chiche</option> 
                <option>Courgette</option> 
                <option>Choux</option> 
                <option>Potiron Pumpkin</option> 
                <option>carottes</option> 
                <option>Semoule</option> 
                <option>Coco Oil</option> 
                <option>patate douce sweet potatoe</option> 
                <option>Sweet Potatoes</option> 
                <option>Couscous FZ</option> 
                <option>abricot sec</option> 
                <option>Dates</option> 
                <option>Chia seeds</option> 
                <option>Amandes</option> 
                <option>Graines de Tournesol</option> 
                <option>cacao Nips</option> 
                <option>Graines de Sesame</option> 
                <option>Ail</option> 
                <option>Raisin Sec</option> 
                <option>Betterave rouge</option> 
                <option>Persil</option> 
                <option>Poivre</option> 
                <option>Cumin</option> 
                <option>Banane</option> 
                <option>Pomme</option> 
                <option>Avocat</option> 
                <option>Saumon</option> 
                <option>Ritz long grain brown rice</option> 
                <option>Oeuf</option> 
                <option>Chocolat Noir carre</option> 
                <option>Pain Baguette carrefour All Meal</option> 
                <option>Myrtilles</option> 
                <option>Fromage Brie paysan breton</option> 
                <option>Fromage chevre</option> 
                <option>Fromage gruyere</option> 
                <option>Camenbert</option> 
                <option>organic wholemeal bread floor (Waitrose uchy)</option> 
                <option>Framboises</option> 
              </select> 
            </td>
          </tr>
          <tr> 
            <td>
              <input type="submit" name="submit" value="Add">
            </td> 
          </tr> 
          </table> 
      </form> 
    </center> 
	</body> 
</html>






0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci Jordane, c'est bon j'y suis arrive! merci encore.
0