Formulaire de modification de données

kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004 - 17 avril 2004 à 11:58
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 - 20 avril 2004 à 11:00
Bonjour,

Je voudrais réaliser un formulaire de mise à jour qui me permettent de modifier les données existante dans ma base. Voici mon code :

<?php

$cnx = mysql_connect( "localhost", "root", "" ) ;
$db = mysql_select_db( "ma_bdd" ) ;
$id = $_GET["id"] ; //pour récupérer l'id dans l'url
$sql "SELECT * FROM ma_table WHERE id ".$id ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<form name="insertion" action="maj.php" method="POST">
">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>Paragraphe1</td>
<td>para1) ;?>"></td>
...

J'obtiens l'erreur suivante :

"Warning: mysql_fetch_object(): supplied argument is not a valid MySQL"

Quelqu'un a-t-il une solution pour faire fonctionner ce formulaire ?

Merci à vous,

11 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
17 avril 2004 à 12:40
tu devrais faire un echo mysql_error(); avant ton fetch pour t afficher le message d erreur sql.
La en fait c est ta requete qui passe pas.
Duss
0
kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004
17 avril 2004 à 15:51
Merci pour le tuyaux, j'ai fait comme tu as dit et grace au message d'erreur, j'ai pu facilement retrouver la faute de frappe qui engendrait l'erreur.

Malheureusement le probleme ne s'arrete pas la ! Toujours avec ce meme code, le formulaire apparait désormais correctement, mais les champs sont vides !!! Or ma base ne l'est pas !

Pouvez-vous m'aider !

Merci beaucoup,

Kharm
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
17 avril 2004 à 17:51
">
>para1;?>">
comme ca ca surcharge moins le code.
Peut etre l'erreur vient elle de la.
para1 est il un nom de champ de ta table ?
Duss
0
kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004
17 avril 2004 à 18:01
Merci Duss, j'ai testé ta solution mais malheureusement ca ne change rien.

para1 est bien le nom d'un champ de ma table.

Si il y a d'autres idées...

Kharm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
17 avril 2004 à 18:32
t as pas de message d erreur ?
dans les sources y a rien ?
Duss
0
kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004
18 avril 2004 à 14:20
C bon tout fonctionne...c'était une erreur de ma part. J'avais malencontreusement aspiré les données de l'enregistrement sur lequel je faisait le test (pas malin) et je croyais donc que ca ne marchait pas alors que c'était tout bon.

Mais je ne m'arrete pas la lol !

Maintenant c mon fichier de mise à jour qui coince, il ne récupère pas les données, pourtant j'utilise la méthode POST de la manière suivante :

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "ma_base" ) ;

//récupération des valeurs des champs:
$para1 = $_POST["para1"] ;
$para2 = $_POST["para2"] ;
$para3 = $_POST["para3"] ;
$para4 = $_POST["para4"] ;
$para5 = $_POST["para5"] ;
$id = $_POST["id"] ;

//création de la requête SQL:
$sql = "UPDATE page
SET para1 = '$para1',
para2 = '$para2',
para3 = '$para3',
para4 = '$para4',
para5 = '$para5'
WHERE id = '$id' " ;

//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>

Pourquoi est ce que ca ne marche pas et que puis-je faire ?

Merci,

Kharm
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
19 avril 2004 à 16:23
pas de message d erreur ?
sinon ton id est il numérique ?
auquel cas ne le met pas entre '
Duss
0
kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004
20 avril 2004 à 07:26
Le message d'erreur est le suivant :

Undefined index: para2 in c:\program...

Et ce, pour chaque variable que je récupère avac la méthode POST. J'ai essayer d'utiliser la méthode GET et j'ai toujours le meme message d'erreur, pourtant les variables apparaissent dans l'url, mais la modification n'est pas effectuée.

Merci pour ton aide,
Kharm
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
20 avril 2004 à 09:37
tu utilises koi ? easyphp ? apache et php ? est-ce que les globales sont activées dans ton php.ini ?
Duss
0
kharm Messages postés 6 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 20 avril 2004
20 avril 2004 à 10:46
J'utilise easyphp avec la configuration proposée par défaut. Comment faire pour activées les globales si elles ne sont pas ?
Kharm
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
20 avril 2004 à 11:00
essayes avec $HTTP_POST_VARS au lieu de $_POST pour voir
Duss
0
Rejoignez-nous