Alainp Posté 25 Mai 2011 Partager Posté 25 Mai 2011 (modifié) Bonjour, Cà fait des heures que je me débats avec mon script php et je fais appel à vous Je voudrai mettre à jour tous les enregistrements d'une base de données appelée articles. J'ai un champ texte (appelé titre) contenant blabla blabla blablabla Dans un nouveau champ texte (appelé url), je voudrai recopier le précédent sous la forme blabla-blabla-blablabla Les tirets sont obtenus avec une fonction fonc_url_art Mon script qui ne fonctionne pas $q2 = mysql_query("SELECT * FROM articles ORDER BY idx"); while ($r2 = mysql_fetch_array($q2)) { $numart = $r2["idx"]; $cattitle=fonc_url_art($r2["titre"]); mysql_query("UPDATE articles SET url = $cattitle WHERE idx = $numart"); } Où ai-je fait une erreur, ou plusieurs Merci pour votre aide Modifié 25 Mai 2011 par Alainp Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 25 Mai 2011 Partager Posté 25 Mai 2011 Mets $cattitle entre guillemets simples, après avoir éventuellement échappé la valeur avec mysql_real_escape_string(). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 25 Mai 2011 Partager Posté 25 Mai 2011 Bonjour, Il ne fonctionne pas mais as tu une erreur? Qu'est ce qui ne marche pas? Le champ est vide? Portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Alainp Posté 25 Mai 2011 Auteur Partager Posté 25 Mai 2011 Mets $cattitle entre guillemets simples, après avoir éventuellement échappé la valeur avec mysql_real_escape_string(). Un grand merci captain_torche, mon nouveau champ est à jour avec les guillemets simples. Bonne journée. PS : Pour répondre à Portekoi, il n'y avait pas d'erreur mais le champ restait vide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 25 Mai 2011 Partager Posté 25 Mai 2011 $q2 = mysql_query("SELECT idx FROM articles "); while ($r2 = mysql_fetch_array($q2)) { $cattitle = fonc_url_art($r2["titre"]); mysql_query("UPDATE articles SET url = '".$cattitle."' WHERE idx = ".$r2["idx"]); } Plus propre Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 25 Mai 2011 Partager Posté 25 Mai 2011 Je dirai même plus : ajoute un "or die(mysql_error());" après le mysql_query(), et tu auras beaucoup plus d'infos sur la raison du non fonctionnement de ta requête. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 25 Mai 2011 Partager Posté 25 Mai 2011 Et si le but c'était juste de remplacer les espaces par des tirets, un simple "UPDATE articles SET url=replace(titre,' ','-')" suffirait pour faire toutes les modifs d'un seul coup. Jacques. 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