Php : ou est l'erreur?
leuntout
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
leuntout Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
leuntout Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voila, j'ai fait un script et lorsque je l'exécute, il me met une erreur sur mes requêtes, que je ne trouves pas (revérifié 15000 fois, ma bdd est correctement créée, remplis...)
Je vous explique le fonctionnement de ma page :
1- je choisis un site parmis ceux enregistrés dans ma bdd (ca marche)
2- les 5 derniers taux de fréquentation s'affichent(ca marche)
3- sur la même page, j'entre un taux pour un nouveau moi (ca ne marche pas)
Si vous voyez d'où vient le problème... la je suis dépassé!
Merci!
Alors voila, j'ai fait un script et lorsque je l'exécute, il me met une erreur sur mes requêtes, que je ne trouves pas (revérifié 15000 fois, ma bdd est correctement créée, remplis...)
Je vous explique le fonctionnement de ma page :
1- je choisis un site parmis ceux enregistrés dans ma bdd (ca marche)
2- les 5 derniers taux de fréquentation s'affichent(ca marche)
3- sur la même page, j'entre un taux pour un nouveau moi (ca ne marche pas)
Si vous voyez d'où vient le problème... la je suis dépassé!
Merci!
<?php session_start(); if (isset($_POST['enregistrer']) && $_POST['enregistrer'] == 'Enregistrer') { //si le formulaire des taux est validé if (isset($_POST['mois']) && !empty($_POST['mois']) && isset($_POST['taux']) && !empty($_POST['taux'])) { //si bien renseigné $mois=$_POST['mois']; $taux=$_POST['taux']; mysql_query("INSERT INTO $site VALUES('','".$mois."','".$taux."')") or die ('Erreur insertion : '.mysql_error()); //enregistrement du taux echo '<h2>'.$site.'</h2>'; $lister_taux=mysql_query("SELECT * FROM $site ORDER BY id DESC LIMIT 0,5") or die ('Erreur : '.mysql_error()); //Affichage des 5 derniers taux while ($afficher_taux=mysql_fetch_array($lister_taux)) { echo $afficher_taux['mois']; echo ' - '.$afficher_taux['tau'].'€<br>'; } echo '<br><a href="taux.php">Entrer un nouveau taux</a>'; } else { header("Location: taux.php"); //si le mois et le taux ne sont pas renseignée, on redirige exit(); } } else { if (isset($_POST['site'])) { // Vérification du choix du site $site=$_POST['site']; $_SESSION['site']=$site; $site=$_SESSION['site']; echo '<h2>'.$site.'</h2>'; $lister_taux=mysql_query("SELECT * FROM $site ORDER BY id DESC LIMIT 0,5"); while ($taux=mysql_fetch_array($lister_taux)) { //Affichage des 5 derniers taux echo $taux['mois']; echo ' - '.$taux['tau'].'€<br>'; } echo '<form action="taux.php" method="post">'; // Formulaire d'ajout un taux echo '<label>Mois : </label><input type="text" name="mois" />'; echo '<label>Taux : </label><input type="text" name="taux" />'; echo '<input type="submit" name="enregistrer" value="Enregistrer" />'; echo '</form>'; echo '<br/><a href="taux.php">Choisir un autre site</a>'; } else { ?> <form method="post" action="taux.php"> <select name="site"> <option selected>Choisir un site</option> <?php $lister_sites=mysql_query("SHOW TABLES"); while($sites=mysql_fetch_array($lister_sites)) { echo'<option value="'.$sites[0].'">'.$sites[0].'</option>'; } ?> </select> <input type="submit" name="envoyer" value="Envoyer"> </form> <?php } } ?>
A voir également:
- Php : ou est l'erreur?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
7 réponses
Bonsoir,
J'ai vérifier avec Dreamweaver CS5, aucune erreur de syntaxe signalé, j'ai vérifier par moi même, et je en trouve aucune erreur, j'essai en localhost, et aucun message d'erreur ne vient. Pourrais-tu nous en dire plus sur ta requête, ou de ton erreur ?
J'ai vérifier avec Dreamweaver CS5, aucune erreur de syntaxe signalé, j'ai vérifier par moi même, et je en trouve aucune erreur, j'essai en localhost, et aucun message d'erreur ne vient. Pourrais-tu nous en dire plus sur ta requête, ou de ton erreur ?
Bonsoir, et merci.
Voici l'erreur, qui intervient sur la requête d'insertion des données dans la BDD :
Erreur insertion : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES('','Octobre','53')' at line 1
le premier champ de la BDD est l'id, puis mois, puis une valeur.
Voici l'erreur, qui intervient sur la requête d'insertion des données dans la BDD :
Erreur insertion : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES('','Octobre','53')' at line 1
le premier champ de la BDD est l'id, puis mois, puis une valeur.
la requête d'insertion est fausse.
pour éviter les erreurs il est préférble d'indique le nom des champs :
INSERT INTO $site(id,mois,taux) VALUES('','".$mois."','".$taux."')
de plus si l'id est la clé primaire et est généré automatiquement(ce qui est sûrement le cas) , pourquoi mettre une valeur vide ?
correction de la requête :
INSERT INTO $site(mois, taux) VALUES('".$mois."','".$taux."')
pour éviter les erreurs il est préférble d'indique le nom des champs :
INSERT INTO $site(id,mois,taux) VALUES('','".$mois."','".$taux."')
de plus si l'id est la clé primaire et est généré automatiquement(ce qui est sûrement le cas) , pourquoi mettre une valeur vide ?
correction de la requête :
INSERT INTO $site(mois, taux) VALUES('".$mois."','".$taux."')
ben non, toujours pas!
je trouve ça dingue, j'en ai pourtant codé du PHP et je ne comprends pas ce qui coince...
je trouve ça dingue, j'en ai pourtant codé du PHP et je ne comprends pas ce qui coince...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai trouvé un élément de réponse, lors de la requête la variable $site n'est pas connue (car ca marche en entrant directement le nom de la table).
Mais ce qui bloque, en fait c'est l'affichage des 5 derniers taux une fois le nouveau enregistré. Quand je retire cette partie du code, cela fonctionne. je pense qu'il me faut un rechargement de la page entre l'enregistrement et l'affichage mis à jour. Qu'en pensez-vous?
Mais ce qui bloque, en fait c'est l'affichage des 5 derniers taux une fois le nouveau enregistré. Quand je retire cette partie du code, cela fonctionne. je pense qu'il me faut un rechargement de la page entre l'enregistrement et l'affichage mis à jour. Qu'en pensez-vous?
tu utilises une variable $site qui n'est pas définie dans les lignes précédentes:
essayes
essayes
<?php session_start(); if (isset($_POST['enregistrer']) && $_POST['enregistrer'] == 'Enregistrer') { //si le formulaire des taux est validé if (isset($_POST['mois']) && !empty($_POST['mois']) && isset($_POST['taux']) && !empty($_POST['taux'])) { //si bien renseigné $mois=$_POST['mois']; $taux=$_POST['taux']; $site=$_SESSION['site']; mysql_query("INSERT INTO $site VALUES('','".$mois."','".$taux."')") or die ('Erreur insertion : '.mysql_error()); //enregistrement du taux .......