Donner la valeur d'un autre champ à un champ vide

Répondre
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Bonjour,

j'ai une table MySQL répertoriant les membres avec plusieurs champs (pseudo, mail...etc)

Je viens de rajouter un champ. Celui ci est modifiable via un forumlaire.

J'aimerais le nouveau champ de tous ceux qui ne l'on pas encore modifié prenne la valeur de leur pseudo...

Par exemple, si le mebre "maxou" n'a pas modifié le nouveau champ que je viens de créer, celui-ci aura pour valeur "maxou" jusqu'à ce qu'il le modifie, il prendra alors la valeur que le membre "maxou" aura choisit...

Comment faire ?

Merci d'avance
zebden
zebden
Déconnecté
zebdinou pour les intimes / Blog : http://www.zebden.fr
Lu,

tu peux ajouter un champ avecl'identifiant qui a le pseudo d'origine. Et lorsque il y a modification sur la ligne de cette identifiant, alors tu envoies une demande au membre qui voulait ce pseudo, s'il choisit de changer ou pas ...

Problème ce que tu peux avoir plusieurs demande pour "maxou" dans ce cas, la demande se fera sur le membre le plus ancien.. Et ainsi de suite..

Shématiquement ça donnerait un truc genre

Identifiant Pseudo IdentifiantMembreAyantMonPseudoSouhaité
1 maxou 0
2 maxou2009 1

Si 1 change, j'envoie à 2 la proposition grâce au champ "IdentifiantMembreAyantMonPseudoSouhaité". (Ne le fait pas automatiquement, demande une confirmation).

Bon courage ^^.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Oulà, c'est chaud comme truc mais merci ca m'aide un peu ^^

Pour l'instant j'ai préféré laisser le nouveau champ vide... Ca va poser quelques problèmes au début pour tous les membres qui n'auront pas modifiés leurs champs mais après ca sera bon vu que j'ai interdit de laisser le champ vide après une première modification :)

++
Rolland
Rolland
Déconnecté
3SI - Sea, Sex, Sun and Internet
Bonjour Raphlight,

Si j'ai bien compris, ce ne doit pas être aussi compliqué.
Tu veux simplement que les champs vides prennent la valeur du pseudo ?
Alors tu récupères le pseudo de chaque membre et tu le places dans le champ vide avec un script du genre :
  1. <?php
  2. /*connexion à ta base*/  
  3. //Récup des pseudos où le noueau champ est vide  
  4. $query = "SELECT pseudo FROM ma_table WHERE nouveau_champ=''";  
  5. $res = mysql_query($query, $connexion) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());  
  6. //on update la table  
  7. while($data=mysql_fetch_assoc($res))  
  8. {  
  9. $update = sprintf("UPDATE ma_table SET nouveau_champ='%s' WHERE pseudo='%s' ",$data['pseudo'],data['pseudo']);  
  10. mysql_query($update, $connexion) or die("Erreur SQL !".$update."<br />".mysql_error());  
  11. }  
  12. mysql_free_result($res);  
  13. mysql_close();  
  14. ?> 


Je te conseille vivement de faire une sauvegarde de ta table avant de lancer le script.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Salut, je comprends à peu près ton code, il a l'air d'être correct ;)

Je te conseille vivement de faire une sauvegarde de ta table avant de lancer le script.


Euh... il y a des chances pour que ca fiche le bordel ?
Rolland
Rolland
Déconnecté
3SI - Sea, Sex, Sun and Internet
Bonsoir raphlight,

Si tu fais une erreur dans ton update, oui.
Et c'est un principe qui évite quelques galères...
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Bonjour,

excuse-moi de ce poste très tardif mais je n'ai pas eu le temps d'acéder véritablement à l'ordi pendant quelques temps..

J'ai sauvegardé ma table et je viens de tester ton bout de code en le modifiant pour qu'il convienne à mon cas.

Voici ce que j'obtiens :

  1. Parse error: syntax error, unexpected '[' in /mnt/...../raphlight/test.php on line 12 


Voici la ligne 12 :

  1. $update = sprintf("UPDATE membre SET lienm='%s' WHERE login='%s' ",$data['login'],data['login']); 

Je n'arrive pas à résoudre le problème étant donné que je ne sais pas ce qu'est ceci : %s

Saurrais-tu comment faire ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Si tu ne sais pas ce que c'est, pourquoi tu utilises sprintf pour construire tes requetes ?

PS : attention à l'injection SQL, utilise mysql_escape_string pour protéger tes valeurs.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Si tu ne sais pas ce que c'est, pourquoi tu utilises sprintf pour construire tes requetes ?

tout simplement car je ne sais pas comment faire autrement...
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
Salut,

la je ne suis pas tres sur mais deja:

  1. <?php
  2. $update = sprintf("UPDATE membre SET lienm='%s' WHERE login='%s' ",$data['login'],data['login']); //<<y'a pas de $ au seconde data['login'], peut etre la ton erreur  
  3. ?> 


Ensuite, quand tu mets sprintf dans google, le premier resultat est le bon ;) smiley
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
c'était bien ca keika ;)

Merveilleux forum que le phpfacile !

Merci à tous, ca marche parfaitemet bien !!
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php