Webmaster Hub: Souci de mise a jour BDD - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Souci de mise a jour BDD Noter : -----

#1 L'utilisateur est hors-ligne   Alainp 

  • Groupe : Actif
  • Messages : 21
  • Inscrit(e) : 01-octobre 04

Posté 25 mai 2011 - 10:05

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

Ce message a été modifié par Alainp - 25 mai 2011 - 10:06.

0

#2 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 25 mai 2011 - 10:43

Mets $cattitle entre guillemets simples, après avoir éventuellement échappé la valeur avec mysql_real_escape_string().
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#3 L'utilisateur est hors-ligne   Portekoi 

  • Calimérosateur / Dictationneur
  • Groupe : Admin
  • Messages : 3 692
  • Inscrit(e) : 12-janvier 05
  • Genre:Homme
  • Localisation:Meaux
  • Société:CGD

Posté 25 mai 2011 - 10:52

Bonjour,

Il ne fonctionne pas mais as tu une erreur? Qu'est ce qui ne marche pas? Le champ est vide?


Portekoi
0

#4 L'utilisateur est hors-ligne   Alainp 

  • Groupe : Actif
  • Messages : 21
  • Inscrit(e) : 01-octobre 04

Posté 25 mai 2011 - 11:07

Voir le messagecaptain_torche, le 25 mai 2011 - 10:43, dit :

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
0

#5 L'utilisateur est hors-ligne   Portekoi 

  • Calimérosateur / Dictationneur
  • Groupe : Admin
  • Messages : 3 692
  • Inscrit(e) : 12-janvier 05
  • Genre:Homme
  • Localisation:Meaux
  • Société:CGD

Posté 25 mai 2011 - 11:16

$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 :)
0

#6 L'utilisateur est hors-ligne   captain_torche 

  • Danacol / Orangina rouge
  • Voir le blog
  • Groupe : Admin
  • Messages : 6 722
  • Inscrit(e) : 08-février 06
  • Genre:Homme
  • Localisation:Savigny / Orge

Posté 25 mai 2011 - 11:27

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.
Vous avez rêvé cette nuit ? Partagez vos rêves sur l'Onironaute !
Bijoux fantaisie
Recherche nounou
0

#7 L'utilisateur est hors-ligne   jcaron 

  • Groupe : Membre+
  • Messages : 864
  • Inscrit(e) : 15-janvier 08
  • Genre:Homme
  • Localisation:Londres

Posté 25 mai 2011 - 13:06

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.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)