S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités Blog 01 A propos des forums
109 utilisateurs connectés

{UPDATE} Modifier une ligne dans une table

Dexter2089 le 06 aout 2009 à 11h00
Bonjour,
je galère depuis quelques semaine avec mon code, je n'arrive pas à modifier une ligne dans ma table, j'ai deux pages (une avec le formulaire et l'autre avec la requête).

Je rentre les données depuis ma BDD (donc le sexe, l'age et l'avatar), le problème est en faite que quand je passe par le formulaire c'est informations se supprime, et ne ce remplace pas.

La requête marche très bien

modifier-compte-utilisateur.php
<?php
mysql_connect("XXX", "XXX", "XXX");
mysql_select_db("XXX");

$requete = mysql_query("SELECT * FROM Comptes_Utilisateurs ");

$reponse = mysql_query("SELECT * FROM Comptes_Utilisateurs where Nom_Utilisateur='$_COOKIE[NOM_UTILISATEUR]' ");

# Deconnection MySQL
mysql_close();

# Boucle pour afficher le résultat
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<form action="modifier-compte-utilisateur-2.php" method="post">

<table border="1" width="100%">

<td width="20%"><center>

Sexe :<br />
<?php
if ($_COOKIE["SEXE_UTILISATEUR"] == Femme )
{
echo '<select>
<option selected="selected" value="Femme">Femme</option>
<option value="Homme">Homme</option>
</select>';
}
else
{
echo '<select>
<option selected="selected" value="Homme">Homme</option>
<option value="Femme">Femme</option>
</select>';
}
?>

</center></td>

<td width="40%"><center>

Avatar :<br />
<?php
{
echo '<input type="text" name="$new_avatar" value="' .$_COOKIE["AVATAR_UTILISATEUR"]. '" />';
}
?>
</center></td>

<td width="40%"><center>

Age :<br />
<?php
{
echo '<input style="text-align:center;" type="text" name="$new_age" value="' .$_COOKIE["AGE_UTILISATEUR"]. '" />';
}
?>

</center></td>

</table><br />

<center><input type="submit" value="Modifier" /> - <input type="reset" value="Effacer" /></center>

</form>

<?php

}
?>


modifier-compte-utilisateur-2.php
<?php
$cnx = mysql_connect("XXX", "XXX", "XXX");

$db = mysql_select_db("XXX");

$new_sexe = html_entity_decode($_POST["Sexe_Utilisateur"]);
$new_avatar = html_entity_decode($_POST["Avatar_Utilisateur"]);
$new_age = html_entity_decode($_POST["Age_Utilisateur"]);

$sql = "UPDATE Comptes_Utilisateurs SET `Sexe_Utilisateur` = '$new_sexe', `Avatar_Utilisateur` = '$new_avatar', `Age_Utilisateur` = '$new_age' where Nom_Utilisateur='$_COOKIE[NOM_UTILISATEUR]' ";


$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

if($requete)
{
echo 'Les modifications ont bien &eacute;t&eacute; effectu&eacute;s. <br />
Vous allez &ecirc;tre redirig&eacute;.';
}
else
{
echo 'Une erreur est survenue lors de la modification.';
}
mysql_close(); // Déconnexion de MySQL
?>
</div>


Je vous remercie par avance.

Cordialement,
Dexter2089
-->Message édité par Dexter2089 le 06/08/2009 11:05:18<--
QuiPhenix le 06 aout 2009 à 12h57
Bonjour,

Je pense que votre probleme ne se situe pas dans la requête (la preuve est qu'elle fonctionne puisqu'elle efface les données précédemment entrées) mais plutôt au niveau de la récupération des données venant du formulaire.
Essayez d'afficher la requête créé SQL avant de l'exécuter, et à mon avis vous verrez que les champs sont vides.

Si j'ai raison, le problème viens du fait que vous n'utilisez pas les noms de vos champs dans les variables POST ...
Par exemple, votre champ pour l'avatar s'appelle $new_avatar (attribut name du champ et d'ailleurs, je pense que le dollar risque de poser problème) et vous tentez de récupérer les champs avec la variable $_POST["Avatar_Utilisateur"] alors qu'il faudrait utiliser la variable $_POST['$new_avatar']. Le reste des récupérations n'est pas cohérent non plus donc ca suit le même chemin ...
-------
[:QuiPhenix:3]
Dexter2089 le 06 aout 2009 à 13h25
A oui en effet, j'étais tellement persuader que mon formulaire était juste, que je me suis fixé sur la requête, j'essaie ça dessuite et reviens vers toi, soit pour crier victoire :youpi: ou soit pour de l'aide :D :D

Merci de ta réponse QuiPhenix
Dexter2089 le 06 aout 2009 à 14h29
Voila je reviens vers vous car :youpi: :youpi: :youpi: ça marche parfaitement, autant de galère pour une erreur comme ça, il manqué simplement
name=""
et il fallait retiré le
$
et remplacer par le nom des colonnes visé dans se cas
Avatar_Utilisateur
(etc...), aussi simple que ça !

Ce qui donner au final :

<?php
{
echo '<input type="text" name="Avatar_Utilisateur" value="' .$_COOKIE["AVATAR_UTILISATEUR"]. '" />';
}
?>


Merci pour ton aide QuiPhenix !
-->Message édité par Dexter2089 le 06/08/2009 14:31:00<--
QuiPhenix le 06 aout 2009 à 15h56
Pas de problèmes ... heureux que ca fonctionne :super:
-------
[:QuiPhenix:3]


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
> ChanceRoom
Découvrez la nouvelle Poker Room montante.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Groupe 01 - 01net.