Aller au contenu

Souci de mise a jour BDD


Alainp

Sujets conseillés

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é par Alainp
Lien vers le commentaire
Partager sur d’autres sites

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


$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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...