PHP - Problème d'update

baldwim Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour tout le monde si je post aujourd'hui c'est pour que quelqu'un puisse m'aider sur un sujet qui me fait buger depuis ce matin.

Dans une page nonmé ADDHERO.php j'ai créer un form, quand je le poste je renvois un lien sous la forme :

<? 

if(isset($_POST['nom'], $_POST['histoire']) and $_POST['nom']!=''){
echo " <div class=\"valid_box\">Continuer <a href='addhero2.php?nom=".$nom." '>l'étape 2</a> de la création de votre personnage<br /></div> ";

}
?>


J'arrive sur la page, 2 et je tente d'update 4 variables dans une table :

<?php


if(!empty($_POST)) {
// Insert data into mysql

$nom2 = $_GET['nom'];

$pv = (isset($_POST['pv'])) ? $_POST['pv'] : '';
$pm = (isset($_POST['pm'])) ? $_POST['pm'] : '';
$attaque = (isset($_POST['attaque'])) ? $_POST['attaque'] : '';
$magie = (isset($_POST['magie'])) ? $_POST['magie'] : '';




$requete = "UPDATE hero SET pv=$pv, pm=$pm, attaque=$attaque, magie=$magie WHERE nom=$nom' ";
$sql = mysql_query($requete) or die(mysql_error());

}
?>
<? 
if(isset($_POST['pv'], $_POST['pm']) and $_POST['pv']!='')
{
echo " <div class=\"valid_box\">Continuer <a href='addhero3.php?nom=".$nom." '>l'étape 3</a> de la création de votre personnage<br /></div> ";

}
?>


Quand je valide le tout, pas de modification dans la base ... comment faire ? quelqu'un pourrait t-il m'aider ?
A voir également:

7 réponses

Utilisateur anonyme
 
Bonjour

étonnant que tu n'aies pas d'erreur, il te manque une apostrophe avant $nom :
$requete = "UPDATE hero SET pv=$pv, pm=$pm, attaque=$attaque, magie=$magie WHERE nom='$nom' ";

Et pourquoi $nom alors que tu as mis le champ nom dans $nom2 ?
0
baldwim Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
une erreur de ma part ...

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

voici mon code :

<?php
if (isset($_POST['submit']))
// Insert data into mysql
{

$nom = $_GET['nom'];

$pv=$_POST['pv'];
$pm=$_POST['pm'];
$attaque=$_POST['attaque'];
$magie=$_POST['magie'];

$sql = "UPDATE hero SET pv=$pv, pm=$pm, attaque=$attaque, magie=$magie where nom='$nom' ";
$result = mysql_query($sql) or die(mysql_error());

?>


toujours pas de modifications dans la base ...
0
Utilisateur anonyme
 
Fais un
echo $sql;
pour voir quelle requête est réellement exécutée
0
baldwim Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
UPDATE hero SET pv=5, pm=6, attaque=8, magie=7 where nom=''

il ne prend pas la variable GET nom alors que un peu plus haut j'ai :

<h2>2° Etape : Caractéristiques de <? echo $nom ; ?></h2> et ça marche
0

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

Posez votre question
Utilisateur anonyme
 
Ça veut dire qu'il y a autre chose que ce que tu dis dans ton message #2 entre
$nom = $_GET['nom'];
et
$sql = "UPDATE hero SET pv=$pv, pm=$pm, attaque=$attaque, magie=$magie where nom='$nom' ";

?

Si c'est le cas, donne ce qu'il y a car si tu continues à donner de mauvais renseignements, je continuerai à te donner de mauvaises réponses.
0
baldwim Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
<h1>Créer un héros </h1>
<h2>2° Etape : Caractéristiques de <? echo $nom ; ?></h2>
<?php
if (isset($_POST['submit']))
// Insert data into mysql
{

$nom = $_GET['nom'];



$pv=$_POST['pv'];
$pm=$_POST['pm'];
$attaque=$_POST['attaque'];
$magie=$_POST['magie'];

$sql = "UPDATE hero SET pv=$pv, pm=$pm, attaque=$attaque, magie=$magie where nom='$nom' ";
$result = mysql_query($sql) or die(mysql_error());
echo $sql;

?>

voila tout le script
0
Utilisateur anonyme
 
Si <? echo $nom ; ?> marche dès la première ligne de ton script, à quoi sert $nom = $_GET['nom']; quelques lignes plus loin ?
En tous cas, c'est cette deuxième valeur qui est utilisée pour la requête, puisqu'elle écrase la première.
Supprime la ligne $nom = $_GET['nom']; et, si tu peux, explique-moi d'où vient la valeur de $nom de ta première ligne, puisque tu ne l'as jamais initialisé ?
0