Hugo38 Posté 21 Avril 2011 Posté 21 Avril 2011 Bonjour tous le monde, Encore un petit soucis, cette fois avec un requete UPDATE. Mon but est de faire en sorte qu'a chaque clic sur un bouton une table contenu se copie dans une table contenu_temp. Voila ma requette : if(empty($err)){ $sql2 = "SELECT * FROM contenu"; $query2 = mysql_query($sql2); while($data2 = mysql_fetch_array($query2)){ $id = $data2['Id']; $contenu = $data2['Contenu']; $cat = $data2['Categorie']; $page = $data2['Page']; $sql3 = "UPDATE contenu_temp SET Categorie='$cat',Page='$page',Contenu='$contenu' WHERE Id='$id'"; mysql_query($sql3); } } Alors quand je fait un echo de $sql3, le contenu affiché est le bon par contre il ne me le rentre pas en bdd, donc d'apres moi un soucis avec le mysdql_query mais je ne voit pas mon erreur. Merci d'avance.
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 Re bonjour, Apres quelques test je viens de me rendre compte que la requette fonctionne mais une fois sur deux. Enfait sur mes 10 entrée il me fait un update sur la 1, 3, 5, 7 ,9 et les autres non. Alors la par contre je suis perdus, si vous avez une solution je suis preneur. Merci
captain_torche Posté 21 Avril 2011 Posté 21 Avril 2011 Pourquoi ne copierais-tu pas la table entière, plutôt que ses éléments un par un ? Le traitement en serait grandement accéléré, vu que tu ne ferais plus q'une requête (éventuellement deux, la première pour vider la table temporaire), au lieu d'une requête par enregistrement.
Dadou Posté 21 Avril 2011 Posté 21 Avril 2011 Il faut que l'id existe dans ta table temporaire pour que l'update fonctionne, tu devrais utiliser un "INSERT ... ON DUPLICATE KEY UPDATE" cf : http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 L'Id existe bien car au tout début j'ai copié ma table contenu dans ma table contenu_temp donc les 10 Id sont déja present mais il ne m'en modifie que 1 sur 2.
Dadou Posté 21 Avril 2011 Posté 21 Avril 2011 Et j'espère que ce n'est pas une copie de toute la table, parce que c'est pas vraiment top comme système Dans les valeurs des champs categorie et contenu, tu n'aurais pas des ' par hasard??
Portekoi Posté 21 Avril 2011 Posté 21 Avril 2011 Bonjour, Insert into contenu_temp Select * from contenu En veillant à se que les 2 tables est une structure identique. Portekoi
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 Non il n'y a pas de ' dans mes champs. Les deux tables ont apparament une structure identique. Je e comprend pas pourquoi il en prend toujours que une sur deux.
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 Ben avec ta requete le soucis c'est qu'une fois que je l'aurais fait je pourrais plus la mettre a jour vu qu'elle utilise pas un UPDATE. A par si j'ai loupé quelque chose.
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 (modifié) Je viens de tester, donc ça fonctionne si ma table est vide, mais une fois qu'elle s'est remplie elle ne se remet pas a jour quand je recommence Modifié 21 Avril 2011 par Portekoi Texte initiale de Hugo : "cela ne fonctionne pas" puis le post ci-dessus.
Portekoi Posté 21 Avril 2011 Posté 21 Avril 2011 As tu une erreur, un message etc? Désolé, j'ai oublié ma boule de cristal... Avec ma technique, tu vides la table avec un truncate table contenu_temp ; et tu la remplies avec : Insert into contenu_temp Select * from contenu;
Hugo38 Posté 21 Avril 2011 Auteur Posté 21 Avril 2011 Oui en recherchant un peu sur le net j'ai trouvé la requete pour purger la table donc maintenant oui ça marche parfaitement. Merci beaucoup.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant