Problème de modification d'entrée

Résolu
LilSiM Messages postés 7 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 20 avril 2007 - 23 janv. 2007 à 20:14
LilSiM Messages postés 7 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 20 avril 2007 - 24 janv. 2007 à 18:29
Bonjour.


J'ai malheureusement un petit problème avec ma base de données MySQL. Lorsque je veux modifier une entrée, rien ne se passe

Voici le code de ma page qui envoi à une autre page qui est celle ou l'entrée se modifie (normalement) :

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("partner");

if(isset($_GET['modifier_membre']))
{

 

    $retour = mysql_query('SELECT * FROM membres_tbl WHERE id=' . $_GET['modifier_membre']);

    $donnees = mysql_fetch_array($retour);

   

 

    $pseudo = $donnees['login'];

    $roster = $donnees['roster'];

   
}
?>


<form action="liste_membres.php" method="post">

Pseudo : "text" size="30" name="pseudo" value="<?php echo $pseudo; ?>" />


Roster ? : "text" size="30" name="roster" value="<?php echo $roster; ?>" />


    "submit" value="Envoyer" />

</form>


Et voici la page qui modifie les entrées :

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("partner");

if(isset($_POST['roster']))
{

    $roster = $_POST['roster'];


        mysql_query("UPDATE membres_tbl SET roster='" . $roster . "' WHERE login=" . $_POST['pseudo']);
}

if(isset($_GET['supprimer_membre']))
{


    mysql_query('DELETE FROM membres_tbl WHERE id=' . $_GET['supprimer_membre']);
}
?>


<table><tr>

<th>Modifier</th>

<th>Supprimer</th>

<th>Titre</th>

<th>Roster</th>

</tr>

<?php
$retour = mysql_query('SELECT * FROM membres_tbl ORDER BY id DESC');
while($donnees = mysql_fetch_array($retour))
{
?>


<tr>

<td><?php echo'[membres.php?modifier_membre=' . ['id'] . '">'; ?>Modifier]</td>

<td><?php echo'[liste_membres.php?supprimer_membre=' . ['id'] . '">'; ?>Supprimer]</td>

<td><?php echostripslashes($donnees['login']); ?></td>

<td><?php echostripslashes($donnees['roster']); ?></td>

</tr>

<?php
}
mysql_close();
?>


Merci d'avance pour votre aide :).

PS : die(mysql_error()); affiche  :
Champ 'LilSiM' inconnu dans where clause

7 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 janv. 2007 à 17:54
Salut,

ton login, c'est LiSiM, donc, la requette c'est :

UPDATE machin FROM table WHERE login=LiSiM

ici, login est un champ, et LiSiM aussi...

mysql_query('UPDATE membres_tbl SET roster=\'' . $roster . '\' WHERE login=\'' . $_POST['pseudo'].'\'')OR DIE(MYSQL_ERROR());

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
23 janv. 2007 à 22:45
mysql_query
(
"UPDATE membres_tbl SET roster='" . $roster . "' WHERE login=' " . $_POST['pseudo']." ' ");

N'importe où. 
mais là où il le faut.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 janv. 2007 à 23:17
Ptite erreur :

$retour = mysql_query('SELECT * FROM membres_tbl WHERE id=' . $_GET['modifier_membre']);

Tout ce qui passe par GET est de type STRING !
Or ton champ ID est de type INT. Il faut modifier ta requète comme suit :
$retour = mysql_query('SELECT * FROM membres_tbl WHERE id=' . (int) $_GET['modifier_membre']);

Pareil pour le reste, revoit la technique qui consiste à dire qu'une variable est de type STRING ou INT. Ca marche autant pour SQL que pour PHP que pour n'importe quoi :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 janv. 2007 à 17:42
Salut,

putain !! mais vous abusez !! on fait toujours les mêmes remarques !!!

        mysql_query("UPDATE membres_tbl SET roster='" . $roster . "' WHERE login=" . $_POST['pseudo'])OR DIE(MYSQL_ERROR());

t'aurais vu que t'avais une parse error !!!! c'est le genre de truc qu'on n'a pas à corriger ici !!!

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)

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

Posez votre question
LilSiM Messages postés 7 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 20 avril 2007
24 janv. 2007 à 17:42
Ce que tu m'a dit n'a rien changé younes371 :(
LilSiM Messages postés 7 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 20 avril 2007
24 janv. 2007 à 17:46
Euh coucou, au fait j'ai fait ça j'ai meme ecrit que ça affichai : Champ 'LilSiM' inconnu dans where clause
Seulement je ne comprend pas cette erreur.
Merci.
LilSiM Messages postés 7 Date d'inscription samedi 11 février 2006 Statut Membre Dernière intervention 20 avril 2007
24 janv. 2007 à 18:29
Merci beaucoup, c'est bon :)
Rejoignez-nous