Mes requêtes SQL ne s’exécute pas
Résolu
cyril-yann
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
cyril-yann Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
cyril-yann Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je ne sais pas si c'est le bon forum pour poser ma question. Veuillez m'excusez c'est la première fois que je pose un question sur un forum.
Je suis en stage dans une pizzeria pour leur faire un site web. Pour que mon maître de stage puisse modifier les infos des pizzas, j'ai donc créé un base de donnée contenant les pizzas.
Mais le problème est le suivant:
mes requêtes SQL ne fonctionne pas malgré un test sous PHPMyAdmin ou elle fonctionne.
Voici mon code
Merci de votre aide car je ne vois pas ou peut être l'erreur car c'est exactement ce que j'ai vu en cours.
Je suis en stage dans une pizzeria pour leur faire un site web. Pour que mon maître de stage puisse modifier les infos des pizzas, j'ai donc créé un base de donnée contenant les pizzas.
Mais le problème est le suivant:
mes requêtes SQL ne fonctionne pas malgré un test sous PHPMyAdmin ou elle fonctionne.
Voici mon code
<!doctype html>
<html>
<form method="POST" action="">
<link rel="stylesheet" id="child-theme-css" href="css/style.css" type="text/css" media="all" />
<p> Numéro pizza <input type="text" name="numpizza"> </p>
<p> Nom pizza <input type="text" name="nompizza"> </p>
<p> Descriptif pizza <input type="text" name="despizza"> </p>
<p> Prix enfants <input type="text" name="prixe"> </p>
<p> Prix grande <input type="text" name="prixg"> </p>
<p> Prix XXL <input type="text" name="prixx"> </p>
<input type ="submit" name="Ajouter" value="Ajouter">
<input type = "submit" name="Supprimer" value="Supprimer">
<input type ="submit" name="Modifier" value="Modifier">
</form>
<form action="index.php">
<input type="submit" name="retour" value="Accueil"/>
</form>
<?php
$Serveur = "localhost";
$Util = "root" ;
$Mdp = "" ;
$Base = "valpizzas" ;
//Verification si les zone de texte sont remplies
if(!empty($_POST['numpizza']))
{
$num=$_POST['numpizza'];
}
if(!empty($_POST['nompizza']))
{
$nom=$_POST['nompizza'];
}
if(!empty($_POST['despizza']))
{
$des=$_POST['despizza'];
}
if(!empty($_POST['prixe']))
{
$prixE=$_POST['prixe'];;
}
if (!empty($_POST['prixg']))
{
$prixG=$_POST['prixg'];
}
if (!empty($_POST['prixx']))
{
$prixX=$_POST['prixx'];
}
//Connexion a la base de donnée
$Connexion = new mysqli ($Serveur, $Util, $Mdp, $Base);
if($Connexion->connect_error == false)
{
//Bouton pour ajouter une pizzas
if(isset($_POST['Ajouter']))
{
//Les nom des tables sont bonnes
$nomRequete="INSERT INTO pizzas
(Numéro, Nom, Descriptif, Enfant, Grande, XXL)
VALUES
('', '$nom', '$des', $prixE, $prixG, $prixX);"
or exit(mysql_error($connexion));
}
//Bouton pour supprimer une pizza
else if(isset($_POST['Supprimer']))
{
$nomRequete="DELETE FROM pizzas
WHERE Numéro=$num;"
or exit(mysql_error($connexion));
}
//Bouton pour modifier une pizza
else if(isset($_POST['Modifier']))
{
//Les nom des tables sont bonnes
$nomRequete="UPDATE pizzas
SET Numéro=$num, Nom='$nom', Descriptif='$des', Enfant=$prixE, Grande=$prixG, XXL=$prixX
WHERE Numéro=$num"
or exit(mysql_error($connexion));
}
//Execution de la requête
$ExecRequete = mysqli_query($Connexion, $nomRequete);
if ($ExecRequete == true)
{
echo "La requette a fonctionée ! ";
}
else
{
echo "La requête n'a pas fonctioné ! ";
}
}
else
{
echo "erreur de connexion";
}
echo $nomRequete;
?>
</html>
Merci de votre aide car je ne vois pas ou peut être l'erreur car c'est exactement ce que j'ai vu en cours.
A voir également:
- Ora-00933: la commande sql ne se termine pas correctement
- Invite de commande - Guide
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Commande terminal mac - Guide
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Bonjour je cherche la réponse à la devinette svp ✓ - Forum Loisirs / Divertissements
1 réponse
Bonjour,
Tu devrais bosser avec ton collègue : https://forums.commentcamarche.net/forum/affich-35416585-requete-sql-ne-s-execute-pas
lui est chargé de la lecture et toi de l'écriture dans la base ?
Il faudrait t'habituer a bien développer la gestion des codes erreur. Ne pas te contenter "Fonctionne" "Ne fonctionne pas". La base de données doit renvoyer des messages d'erreur beaucoup plus pertinents : table inexistante, champ inexistant, valeur incohérente, ...
Tu devrais bosser avec ton collègue : https://forums.commentcamarche.net/forum/affich-35416585-requete-sql-ne-s-execute-pas
lui est chargé de la lecture et toi de l'écriture dans la base ?
Il faudrait t'habituer a bien développer la gestion des codes erreur. Ne pas te contenter "Fonctionne" "Ne fonctionne pas". La base de données doit renvoyer des messages d'erreur beaucoup plus pertinents : table inexistante, champ inexistant, valeur incohérente, ...
J'ai vérifié le nom de ma base de donné, le mot de passe, l'identifiant, le nom de ma table. J'ai juste modifié mon champ Numéro en Idpizzas pour voir si cela ne venait pas du "é" qui poserait problème.
Dès que je clic sur n'importe le quel de mes boutons par exemple pour ajouter j'obtient mon message : La requête n'a pas fonctionné.
Donc ma requête est bien lue mais pas exécuté, alors que sous PHPMyAdmin elle fonctionne.
Je ne voit donc pas pourquoi il y a un problème. Et je débute dans le développement donc je n'ai pas encore pris de bonne habitude, merci de ton conseil.
J'espère avoir été plus claire sur mon problème. Merci de votre aide.
Par ailleurs, même sans connaitre la syntaxe de php, il y a du code qui ne me semble pas logique les blocs :
le or exit ne doit correspondre à rien.
Puis fonctionnellement sur l'ajout on devrait tester que l'objet n'existe pas (à la limite si l'id est attribué automatiquement ce n'est pas nécessaire), mais surtout en modification et suppression, il faut s'assurer que l'objet existe, on ne réalise pas l'action à l'aveugle. Là la gestion des erreurs peut aussi être très utile, par exemple si l'error mysql c'est l'objet n'existe pas on peut répondre "Pizza inexistante" et quand le code retour est OK répondre "Mise à jour effectuée".