francoisch Posté 1 Août 2009 Partager Posté 1 Août 2009 Bonjour Voici une question de débutant MySql ; je veux remplacer la valeur de la colonne nommée transmis pour une sélection de lignes effectuée au préalable. La colonne transmis a la valeur 0 sur chaque ligne sélectionnée ; je veux y mettre la valeur 1. $transmis = 1;$requete = "REPLACE INTO ".$table." ( transmis ) VALUES ( '$transmis' )"; Naturellement, puisque je pose la question, c'est parce que la mise à jour ne se fait pas. Merci par avance de votre aide. Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Août 2009 Partager Posté 1 Août 2009 (modifié) Pour modifier des données dans une table je te conseille plutôt "UPDATE table SET nomcolonne=nouvellevaleur WHERE conditions". Ca a l'avantage d'être standard et probablement plus facile à comprendre. Si tu veux absolument utiliser REPLACE, lis bien la doc: http://dev.mysql.com/doc/refman/5.0/en/replace.html tu y verras qu'il faut que ta table ait une clef primaire (ou unique), et qu'il faut évidemment préciser la valeur de la clef en question dans celles que tu passes (et tu ne peux donc modifier qu'une seule ligne à la fois). EDIT: précisions qu'une "sélection" faite avec SELECT ne survit pas à ce SELECT... Jacques. Modifié 1 Août 2009 par jcaron Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 1 Août 2009 Auteur Partager Posté 1 Août 2009 bonjour et merci de ta réponse. Je n'y arrive tjs pas; voici un extrait de mon code: $requete = "SELECT * FROM ".$table." WHERE destinataire = '".$repertoire."' "; $result = mysql_query ($requete, $connexion); while ($myrow = mysql_fetch_row($result)) { $transmis = 1; $requete = "REPLACE ".$table." SET transmis = '1' WHERE sequence = '".$sequence."'"; } J'ai essayé sans Where, qui ne me parait pas nécessaire ici , sans succès non plus. Je dois avoir une difficulté de logique générale. Merci par avance de votre aide. Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Août 2009 Partager Posté 1 Août 2009 Tu nous fais du beau mélange là. Comme je le disais précédemment, c'est aussi simple que ça: mysql_query("UPDATE ".$table." SET transmis=1 WHERE destinataire='".$repertoire."'",$connexion); Oublie REPLACE pour le moment... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 1 Août 2009 Auteur Partager Posté 1 Août 2009 Merci de ta réponse Jacques. J'ai essayé de mettre en oeuvre tes conseils, ce qui donne, par exemple: UPDATE esp1dialogue SET transmis = '1' WHERE destinataire='landry' mais ça n'a tjs pas mis à jour ce champ transmis. A ton avis, j'ai raté quoi? Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Août 2009 Partager Posté 1 Août 2009 1. Essaie ta requête avec phpmyadmin ou en ligne de commande mysql directement pour voir ce que ça donne (et le message d'erreur éventuel). 2. Si là ça marche, il faut récupérer les messages d'erreur lors de l'exécution en php pour savoir ce qui se passe. Parmi les possibilités: - faute de frappe dans le nom de la table, du champ, du critère... - absence de droits pour modifier la table - connexion pas établie ... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 1 Août 2009 Auteur Partager Posté 1 Août 2009 Ca marche dans PhpMyAdmin. Comment récupérer les messages d'erreur en Php? Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 1 Août 2009 Partager Posté 1 Août 2009 Il va falloir apprendre à lire la doc si tu veux avancer... Premier exemple de la doc de mysql_query: http://uk3.php.net/mysql_query Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 2 Août 2009 Auteur Partager Posté 2 Août 2009 Trouvé, j'avais oublié le $result = mysql_query à cet ordre là. Merci de ton aide. Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant