Pb avec UPDATE

[Résolu]
Signaler
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005
-
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005
-
bonjour à tous!

voilà j'essaye de mettre à jour une base de données mais la requete avec mon UPDATE rencontre quelque problème

voici mon code :


// modifier 
if(isset($_POST['sub_form2'])) 
{ $sql2 "UPDATE rat SET  'nom_rat' '".$data['nom_rat']."', 'sexe_rat' = '".$data['sexe_rat']."', 'poids_rat' = '".$data['poids_rat']."', 'age_rat' = '".$data['age_rat']."', 'couleur_rat' = '".$data['couleur_rat']."' WHERE 'id_rat' =  ".$_POST['supp']; 
$res = mysql_query($sql2) or die (mysql_error()); 
echo "rat modifié"; 
} 

echo "
"; 
 echo "
"; 
$SQL = 'SELECT * FROM rat'; 
$req = mysql_query($SQL) or die('Erreur SQL !
'.$SQL.'
'.mysql_error()); 
echo "<form method="post" action="{$_SERVER['PHP_SELF']}">"; 

while($data = mysql_fetch_assoc($req)) 
    { 
echo "Identifiant : "."
" ; 
echo "Nom : "."" ; 
echo "Sexe : "."" ; 
echo "Poids : "."" ; 
echo "Age : "."" ; 
echo "Couleur : ".""; 
echo ""."

"; 
}  
echo ""; 
echo ""; 
echo "</form>"; 
echo "ajout d un rat"; 

echo "</form>"; 



mon problème se situe dans ma requete

merci pour votre aide car je comprends pas vraiment où est l'erreur...

18 réponses

Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

non :p

$_POST

pas $POST



Le problème aussi, c'est qu'il faudrait mettre ton if d'update avant
l'affichage de ta boucle while sinon tu verras pas le résultat de ta
modification
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"UPDATE rat SET 'nom_rat' = '".$data['nom_rat']."'



Presque :

"UPDATE rat SET nom_rat = '".$data['nom_rat']."' ... ";



On ne met pas les noms de champs entre guillemets !
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oauis je les ais enlevé
mais quand je clique sur "modifié" il me supprime tous els elements, du rat qui devat etre modifié, sauf son identifiant et sa maladie
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

C'est simple =)

echo "Identifiant : "."
" ;

echo "Nom : "."" ;
echo "Sexe : "."" ;
echo "Poids : "."" ;
echo "Age : "."" ;
echo "Couleur : "."";



Ça c'est pas bon du tout

le schéma d'un input c'est





Si tous tes champs on pour name "ok" ... tu risque pas de pouvoir utiliser grand chose =)
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oui oui je lavé modifier
mais ça ne change rien...
ca supprime ...
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Raffiche tout ton script avec ce que tu as mis a jour, pour qu'on parle toujours de la même chose =)
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oui oui

<?


 echo "Liste des rats trouv&#233;s dans la base de donn&#233;es:

";
 echo "
";
 echo "
";
 echo "";


$db = mysql_connect('localhost', 'root', 'pouet');
mysql_select_db('oye',$db);


// suppression
if(isset($_POST['sub_form'])) 
{$sql "DELETE FROM rat WHERE id_rat ".$_POST['supp'];
$res = mysql_query($sql) or die (mysql_error());
echo "rat supprim&#233;";
}


echo "
";
 echo "
";
$SQL = 'SELECT * FROM rat';
$req = mysql_query($SQL) or die('Erreur SQL !
'.$SQL.'
'.mysql_error());
echo "<form method="post" action="{$_SERVER['PHP_SELF']}">";


while($data = mysql_fetch_assoc($req))
    {
echo "Identifiant : "."
" ;
echo "Nom : "."" ;
echo "Sexe : "."" ;
echo "Poids : "."" ;
echo "Age : "."" ;
echo "Couleur : "."";
echo ""."

";
}


// modifier
if(isset($_POST['sub_form2']))
{$sql2 "UPDATE rat SET  nom_rat '".$data['nom_rat']."', sexe_rat = '".$data['sexe_rat']."', poids_rat = '".$data['poids_rat']."', age_rat = '".$data['age_rat']."', couleur_rat = '".$data['couleur_rat']."' WHERE id_rat =  ".$_POST['supp'];
$res2 = mysql_query($sql2) or die (mysql_error());
echo "rat modifi&#233;";
}
echo "";
echo "";
echo "</form>";
echo "ajout d un rat";


echo "</form>";


?>
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

ou définis-tu la variable $data ?
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

$data = mysql_fetch_assoc($req)
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Autant pour moi j'avais pas vu =)



Le problème c'est que tu définis ta variable $data avec les valeur de
ta base de données pour les utiliser pour l'update, donc ça ne changera
jamais rien



while($data = ....)



.....



UPDATE .....nom_rat = '".$data["nom_rat"]."',....
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oui j'utilise $data afin d'afficher les données dans ma page administrateur mais aussi pour les supprimer
les données ne sont pas en dur, elles peuvent être modifiées directement dans cette page, et c'est ça que je veux faire
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Oui mais quand tu envois un formulaire, tu recharge la page, c'est pas
parce que ton formulaire est entre ton while et ton update que ça va
changer grand chose.

La solution est de récupérer les variables envoyées par ton formulaire grâce à la variable autoglobal $_POST



dans ton cas tu utilisera $_POST['id'], $_POST['nom'],
$_POST['sexe'],..... qui contiendrons les données renvoyées par ton
formulaire ;)
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

a oauis ok
je commence à comprendre ...
donc en faite faut que je mette :


while($data = mysql_fetch_assoc($req))
    {
echo "Identifiant : "."
" ;
echo "Nom : "."" ;
echo "Sexe : "."" ;
echo "Poids : "."" ;
echo "Age : "."" ;
echo "Couleur : "."";
echo ""."

";
}


// modifier
if(isset($_POST['sub_form2']))
{$sql2 "UPDATE rat SET  nom_rat '".$POST['nom']."', sexe_rat = '".$POST['sexe']."', poids_rat = '".$POST['poids']."', age_rat = '".$POST['age']."', couleur_rat = '".$POST['couleur']."' WHERE id_rat =  ".$_POST['supp'];
$res2 = mysql_query($sql2) or die (mysql_error());
echo "rat modifi&#233;";
}



oui?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Bien sur que si que tu verras l'affichage du résultat, mais avec le formulaire en plus =)

Disons que c'est mal codé, il vaut mieux faire les vérifs tout au début et afficher ensuite ce que l'on veut plus bas.
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oula je ne sais pas pourquoi j'ai mis $POST mdr
il était tard, completement à l'ouest lol

bon je crois bien que j'ai compris quelque truc
et ça marche très bien à présent et j'en suis vraiment contente :d
je vais mettre le code,ça pourra peut être aider des personnes :

<?


 echo "Liste des rats trouv&#233;s dans la base de donn&#233;es:

";
 echo "
";
 echo "
";
 echo "";


$db = mysql_connect('localhost', 'root', 'pouet');
mysql_select_db('oye',$db);


// suppression
if(isset($_POST['sub_form'])) 
{$sql "DELETE FROM rat WHERE id_rat ".$_POST['supp'];
$res = mysql_query($sql) or die (mysql_error());
echo "rat supprim&#233;";
}


 // modifier
if(isset($_POST['sub_form2']))
{$sql2 "UPDATE rat SET  nom_rat '".$_POST['nom']."', sexe_rat = '".$_POST['sexe']."', poids_rat = '".$_POST['poids']."', age_rat = '".$_POST['age']."', couleur_rat = '".$_POST['couleur']."' WHERE id_rat =  ".$_POST['supp'];
$res2 = mysql_query($sql2) or die (mysql_error());
echo "rat modifi&#233;";
}


echo "
";
 echo "
";


$SQL = 'SELECT * FROM rat';
$req = mysql_query($SQL) or die('Erreur SQL !
'.$SQL.'
'.mysql_error());
echo "<form method="post" action="{$_SERVER['PHP_SELF']}">";


while($data = mysql_fetch_assoc($req))
    {
echo "Identifiant : "."
" ;
echo "Nom : "."" ;
echo "Sexe : "."" ;
echo "Poids : "."" ;
echo "Age : "."" ;
echo "Couleur : "."";
echo ""."

";
}



echo "";
echo "";
echo "</form>";
echo "ajout d un rat";


echo "</form>";


?>


merci beaucoup pour ton aide, qui m'a été vraiment précieuse!!
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

monoceros01, tu m'as bien mise sur la voie
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

De rien =)



(Accepte ma réponse pour indiquer a tout le monde que ton problème est résolu ;) )
Messages postés
49
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2005

oui oui
merci encore!