Problème UPDATE
Absot
Messages postés
819
Statut
Membre
-
Absot Messages postés 819 Statut Membre -
Absot Messages postés 819 Statut Membre -
Slt, je voudrais une requête UPDATE pour une de mes table mais elle ne fonctionne pas, j'ai beau changer certaines valeurs, quand je les réaffiches après, ce sont toujours les mêmes..
Voici ma requête:
Ce n'est pas bon si je traduis la requête "Mets à jour la table Processeur en modifiant le nom par $nom, le constructeur par $constructeur..... ou le nom = $nom?
Parce que c'est la table Processeur mais peut y avoir plusieurs processeur..
Voici ma requête:
$query = "UPDATE Processeur SET nom = '.$nom.',
categorie = '.$categorie.',
constructeur = '.$constructeur.',
socket = '.$socket.',
coeur = '.$coeur.',
photo = '.$photo.',
prixTTC = '.$prixTTC.'
WHERE nom = '.$nom.'";
$result = mysql_query($query) or die("Première requête échouée");
Ce n'est pas bon si je traduis la requête "Mets à jour la table Processeur en modifiant le nom par $nom, le constructeur par $constructeur..... ou le nom = $nom?
Parce que c'est la table Processeur mais peut y avoir plusieurs processeur..
A voir également:
- Problème UPDATE
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Windows update windows 10 - Guide
- Wsus offline update - Télécharger - Systèmes d'exploitation
34 réponses
Si tu essaye ca :
Au fait es-tu sûr que la table s'appelle Processeur et non processeur, par exemple ?
$query = "UPDATE Processeur SET nom='".$nom."', categorie='".$categorie."', constructeur='".$constructeur."', socket='".$socket."', coeur = '".$coeur."', photo='".$photo."', prixTTC='".$prixTTC."' WHERE nom = '".$nom."'";
$result = mysql_query($query) or die("Première requête échouée");
Au fait es-tu sûr que la table s'appelle Processeur et non processeur, par exemple ?
Bonjour
mysql ne prend pas en compte la casse.. Dans mysql, les noms de tables sont des noms de fichiers, leur sensibilité à la casse dépend du système d'exploitation : insensible à la casse avec windows, sensible à la casse avec les dérivés d'UNIX.
Dans ta requête ton (SET) nom='$nom' ne sert à rien puisque tu as aussi WHERE nom='$nom'. Tu remplaces toujours la valeur du nom par lui-même, c'est inutile. Mais ça n'explique pas pourquoi les autres champs ne sont pas mis à jour.
As-tu un message d'erreur ?
Ta requête est-elle vraiment exécutée ?
après l'appel à la requête, ajoute
echo htmlentities($query); pour vérifier que la requête est bien celle que tu crois et
echo mysql_affected_rows(); pour savoir combien de lignes ont été mises à jour
mysql ne prend pas en compte la casse.. Dans mysql, les noms de tables sont des noms de fichiers, leur sensibilité à la casse dépend du système d'exploitation : insensible à la casse avec windows, sensible à la casse avec les dérivés d'UNIX.
Dans ta requête ton (SET) nom='$nom' ne sert à rien puisque tu as aussi WHERE nom='$nom'. Tu remplaces toujours la valeur du nom par lui-même, c'est inutile. Mais ça n'explique pas pourquoi les autres champs ne sont pas mis à jour.
As-tu un message d'erreur ?
Ta requête est-elle vraiment exécutée ?
après l'appel à la requête, ajoute
echo htmlentities($query); pour vérifier que la requête est bien celle que tu crois et
echo mysql_affected_rows(); pour savoir combien de lignes ont été mises à jour
Désolé de ne répondre que maintenant mais je travail qu'à mon stage donc pas le week-end..
Sinon, je n'ai aucun message d'erreur et elle n'est pas exécutée puisque quand je retourne voir les valeurs, elles n'ont pas été modifiées..
Voilà mon code:
J'ai le message d'erreur "Première requête échouée" alors qu'avec mon WHERE, ça ne me le mettait pas..
Donc j'en conclus que ma requête n'est pas bonne..
Je viens de faire un echo de toutes mes variables pour vérifier qu'elles sont bien transmises et elles sont bien là donc je suis sûr que le problème ne vient pas de là..
Sinon, je n'ai aucun message d'erreur et elle n'est pas exécutée puisque quand je retourne voir les valeurs, elles n'ont pas été modifiées..
Voilà mon code:
$query = "UPDATE Processeur SET nom = '.$nom.',
categorie = '.$categorie.',
constructeur = '.$constructeur.',
socket = '.$socket.',
coeur = '.$coeur.',
photo = '.$photo.',
prixTTC = '.$prixTTC.'";
/* execution de la requete */
$result = mysql_query($query) or die("Première requête échouée");
echo htmlentities($query);
echo mysql_affected_rows();
J'ai le message d'erreur "Première requête échouée" alors qu'avec mon WHERE, ça ne me le mettait pas..
Donc j'en conclus que ma requête n'est pas bonne..
Je viens de faire un echo de toutes mes variables pour vérifier qu'elles sont bien transmises et elles sont bien là donc je suis sûr que le problème ne vient pas de là..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essaye ceci :
$query = "UPDATE Processeur SET nom = '".$nom."',
categorie = '".$categorie."',
constructeur = '".$constructeur."',
socket = '".$socket."',
coeur = '".$coeur."',
photo = '".$photo."',
prixTTC = '".$prixTTC."'";
/* execution de la requete */
$result = mysql_query($query) or die("Première requête échouée");
echo htmlentities($query);
echo mysql_affected_rows();
Alors vérifie bien que la table s'appelle bien Processeur, que les champs (coeur, photo...) sont bien écrits !
Bonjour
Que t'affiche le echo htmlentities($query); ?
et au lieu de mettre or die("Première requête échouée"); qui ne t'aide pas beaucoup, mets plutôt or die (mysql_error());
Que t'affiche le echo htmlentities($query); ?
et au lieu de mettre or die("Première requête échouée"); qui ne t'aide pas beaucoup, mets plutôt or die (mysql_error());
J'ai compris d'où venait mon problème, quand j'affichais les prix, je mettais un "€", ce qui fait que ça coinçait pour mettre à jour..
Le problème maintenant est que ça me met tout à jour, j'entends par là que tout les produits sont au même prix, le même nom, même photo et autre..
Il faut que je rajoute quelque chose à ma requête?
Le problème maintenant est que ça me met tout à jour, j'entends par là que tout les produits sont au même prix, le même nom, même photo et autre..
Il faut que je rajoute quelque chose à ma requête?
Non je n'ai pas plus WHERE nom = '".$nom."'.. :/
Voilà mon code complet:
Voilà mon code complet:
/* requête à exécuter */
$query = "UPDATE Processeur SET nom = '".$nom."',
categorie = '".$categorie."',
constructeur = '".$constructeur."',
socket = '".$socket."',
coeur = '".$coeur."',
photo = '".$photo."',
prixTTC = '".$prixTTC."'";
/* execution de la requete */
$result = mysql_query($query) or die(mysql_error());
/* requête à exécuter */
$query = "UPDATE Produit SET nom = '".$nom."',
categorie = '".$categorie."',
constructeur = '".$constructeur."',
photo = '".$photo."',
prixTTC = '".$prixTTC."'";
/* execution de la requete */
$result = mysql_query($query) or die(mysql_error());
Je mets deux table à jour et quand j'appel la table pour l'affichage, c'est la table PRODUIT..
Pourquoi l'as-tu supprimé ? C'est ça qui fait que ta requête ne s'applique qu'aux enregistrement ayant le bon nom. Sino, ton UPDATE s'applique à toute la table.
C'est bien ce que je pensait mais on m'a dit si je me souviens bien que c'était inutile parce que je le répétait deux fois.
Je vais le remettre et voir si ça change..
Je vais le remettre et voir si ça change..
je ne sait pas si sa vien de cela mais je pense que tu devrai pluto écrir:
$query=("update .....");
les parenthèses
Je ne pense pas que ca vienne de la mais bon tu peut toujours essayer.
$query=("update .....");
les parenthèses
Je ne pense pas que ca vienne de la mais bon tu peut toujours essayer.
->jeinny es parenthèses ne servent à rien, ça c'est sûr
-> AbsotC'est toujours pareil, ça me modifie toute la table pas, possible, peux-tu montrer ta requête ?
-> AbsotC'est toujours pareil, ça me modifie toute la table pas, possible, peux-tu montrer ta requête ?
Voici ma requête:
/* requête à exécuter */
$query = "UPDATE Processeur SET nom = '".$nom."',
categorie = '".$categorie."',
constructeur = '".$constructeur."',
socket = '".$socket."',
coeur = '".$coeur."',
photo = '".$photo."',
prixTTC = '".$prixTTC."'
WHERE nom = '".$nom."'";
/* execution de la requete */
$result = mysql_query($query) or die(mysql_error());
/* requête à exécuter */
$query = "UPDATE Produit SET nom = '".$nom."',
categorie = '".$categorie."',
constructeur = '".$constructeur."',
photo = '".$photo."',
prixTTC = '".$prixTTC."'
WHERE nom = '".$nom."'";
/* execution de la requete */
$result = mysql_query($query) or die(mysql_error());