Aller au contenu

Mise à jour d'un champs dans une table


Sujets conseillés

Posté

Bonjour,

Je viens de faire un petit bout de code pour uniformiser les données de ma base de donné mais il ne fonction pas, et je ne comprend vraiment pas pourquoi, une idée ??

<?php

$reponse = mysql_query("SELECT * FROM referencement");
while ($donnees = mysql_fetch_array($reponse) )
{
set_time_limit(600);
$titre=$donnees['titre'];

if (preg_match("#VOST FR#", "$titre"))
{
$remplace = str_replace("VOST FR","VOSTFR", "$titre");
mysql_query("UPDATE referencement SET titre='$remplace' WHERE titre='$titre'"); // Ne fait rien

echo $titre .'<BR>'; // affiche VOST FR dans les titre
echo $remplace .'<BR>'; // affiche VOSTFR dans les titre

}

}

mysql_close();
echo "OK";
?>

Mes echo m'affiche bien ce qui est attendu, "VOST FR" est bien remplacé par "VOSTFR" dans mes titre, sauf que les champs ne sont pas mise à jour, why ???

Que ça soit VOST FR ou VOSTFR ce n'est pas important, mais pour le principe j'aimerais bien comprendre !

Merci d'avance ;)

Posté

Oui il faut toujours prévoir le cas où les paramètres d'une requête ne soient pas ceux attendus.

En ajoutant par exemple echo mysql_error() juste après ton mysql_query("UPDATE...

En cas d'erreur pdt la période de dév, tu as tout de suite le message sous les yeux.

Posté
<?php
mysql_query("UPDATE referencement SET titre='$remplace' WHERE titre='$titre'"); // Ne fait rien

Si ton update effectué directement (via phpmyadmin, par exemple) fonctionne, essaie en remplaçant ta requête par cela:

mysql_query("UPDATE referencement SET titre='". $remplace ."' WHERE titre='". $titre ."'"); // Attention aux quotes...

xpatval

Posté

Bien vu le test directement dans la console MySQL, est fait avec un $titre=addslashes($titre); ça passe :blush:

C'était à cause des apostrophes dans mets titres.

Merci à vous :)

Veuillez vous connecter pour commenter

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



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