Problème UPDATE
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..
Configuration: Windows XP Firefox 2.0.0.20
34 réponses
Une requête UPDATE ne parvient pas à modifier les enregistrements de la table Processeur, les valeurs affichées après réaffichage restant inchangées malgré les modifications proposées dans les variables PHP. Plusieurs réponses recommandent d'entourer les valeurs entre guillemets dans la requête SQL, les chaînes comme nom ou constructeur nécessitant des quotes pour être correctement interprétées. D'autres rappellent que l'utilisation d'un critère WHERE basé sur un nom n'est pas fiable en cas de duplications et recommandent un identifiant unique (id) pour cibler l'enregistrement. En complément, certains échanges soulignent l'importance de vérifier l'exécution via mysql_affected_rows et de déboguer en affichant la requête finale.
-
J'ai trouvé d'où venait mon problème, ça venait d'une variable qui ne s'affichait plus pareil, après rectification, ça refonctionne :)
Je me repenche sur mon principal problème et je vous dit ce qu'il en est.. -
Ok merci quand même
-
je regarde ça plus tard excuse moi je dois filer
-
J'ai également essayer avec "" mais il ne me met pas une phrase qui apparait lorsque tout ceci se fait correctement donc j'en conclus qu'il y a une erreur quelque part..
Avec les "", je n'ai aucun message sur ma page..
Bizarre qu'en changeant de pc, j'arrive pas à me connecter.. :/
Je n'ai toujours uniquement utilisé que easyphp vu qu'on l'utilise en cours.. -
Hello,
En général par défaut il n'y a pas de mot de passe quand on est en local avec localhost et root comme user.
Met lui le mot de passe comme "" ou ''.
Pour ma part j'utilise WAMP server 5 je n'ai jamais réussi à utiliser easy php correctement. -
J'ai une table Produit et une table pour chaque composant.
Dans la table produit, on retrouve chaque composant, par exemple, si j'ai 1 composant dans Processeur et un composant dans carte_graphique, alors j'en aurait deux dans Produit..
Sinon, j'ai du changer de pc et donc j'ai tout copier/coller et je n'arrive pas à me connecter à ma BDD, j'ai une erreur mysql_connect alors que celle-ci avec le même code fonctionnait sur l'autre pc..
J'ai pensé à une autre version d'easyphp mais bon j'étais sur l'autre pc depuis une semaine à peine..
Je vous montre mon code:$connexion = mysql_connect("localhost","root","mysql") or die(mysql_error());
Et j'ai le message d'erreur:
Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: OUI) in c:\program files\easyphp1-8\www\site\traitement.php on line 48
Et la ligne 48 est mon morceau de code juste au desus. -
hello,
vous avez trouvé la réponse ou pas?
absot, et toi ?
sinon dit moi où tu en es avec ce script -
j'ai pas compris ^^
mais tu peu avoir une table par type de composant (socket, carte graphique etc...) et une table pour le pc (et pour les commandes de pc) avec l'id de chaque composant dans une colonne (genre le pc X a comme socket le numéro 10, comme carte graphique le numéro 3 etc...)
tu vois où je veux en venir ? -
Je me suis mal débrouiller avec mes tables SQL..
Parce que j'ai une table produit où sont référencés tout les produits et une table par catégorie genre Processeur, Carte graphique, Disque dur, ..
Donc quand ont fais une mise à jour d'un produit, il faut la faire également dans l'autre table.
Dans la table Produit, ils ont tous les mêmes noms de champs ( idProduit, nom, categorie, constructeur, reference, photo, prixTTC ) mais après dans la table respectif comme Processeur où il y a tout ce qu'il y a dans la table Produit plus les caractéristiques d'un processeur comme le nombre de coeur, le socket, ...
Tout ça pour dire que je me suis embrouillé j'ai l'impression xD
Je vais devoir changer certain trucs mais le mieux est faire des jointures ou de faire en sorte d'avoir qu'un seul id par produit genre l'id 1 appartient à un processeur qui est dans la table Produit donc avec l'id 1 et dans la table Proceseur avec l'id 1?
J'espère que vous avez compris.. ^^ -
Je test avec l'id demain et je vous tiens au courant ;)
-
En y repensant, si la personne modifie le nom et que je mets comme condition WHERE nom = $nom (nom modifié), ça ne va pas fonctionner..
J'ai mis un id à chaque composant et je vais essayer en mettant comme condition WHERE id = $id.. -
pour des composant de pc, généralement ils ont un numéro unique, tu peu utiliser ce numéro comme clé primaire ET comme condition
-
+1, ta condition n'est pas bonne.
-
pourquoi tu met en condition nom='".$nom."'; sachant que le $nom peut ne pas éxister dans la base ?
-
Tous les champs ont-t-ils le même nom ?
-
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()); -
Oui stp ! ^^
-
->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 ? -
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. -
oui c'était inutile mais pas celui dans le WHERE celui dans le SET !!!
- 1
- 2