Php/sql probleme update

canardwifi -  
 Utilisateur anonyme -
Bonjour,

j ai cette requête qui me permet de modifier les champs de ma table mais l'update ne fonctionne pas je me tire les cheveux pour savoir pourquoi*

merci de votre aide

$sql = "SELECT dvd, zone, format FROM general order by dvd";
$req = mysql_query($sql) or die( mysql_error() ) ;
$total = mysql_num_rows($req);
{
echo '<form method ="post" action="test.php">';
echo '<table>'."\n";
echo '<tr>';
echo '<th ><b><u>DVD.</u></b></th>';
echo '<th ><b><u>ZONE</u></b></th>';
echo '<th><b><u>FORMAT</u></b></th>';
echo '</tr>'."\n";
while($row = mysql_fetch_array($req))
{
echo '<tr>';
echo '<td>'.$row["DVD"].'</td>';
echo '<td><input type="text" name="ZONE" value="'.$row["ZONE"].'"/></td>';
echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
echo '<input type="hidden" name="dvd2" value='.$_POST['dvd'].' /><br><center><input type="submit" name="ok" value="Modifier"/></center>';
echo '</form>';
}
if (isset($_POST['riders2']))

{

$sql2= "UPDATE general SET zone='".$_POST['zone']."', format='".$_POST['format']."'
WHERE dvd='".$_POST['dvd2']."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

if(isset($req2))
{
echo "Modification OK" ;
}
}
?>
A voir également:

11 réponses

Utilisateur anonyme
 
Bonjour,

Stocke les $_POST[] dans des variables avant de faire l'UPDATE, je pense que c'est les quote qu'il aime pas dans une chaîne de caractères.

0
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
Ya un espace en method et =

<form method ="post" action="test.php">';

en plus ton champ s'appelle ZONE et pas zone. Je sais pas si ça a quelque chose à voir avec le problème.

tu ecris : if (isset($_POST['riders2']))

il est ou ton input qui s'appelle riders2 , je l'ai pas trouvé.
0
Utilisateur anonyme
 
Non, pas besoin d'espace. Perso je fais toujours des form sans espace et ça fonctionne toujours. C'est les quotes dans la chaîne de caractères qui posent soucis, stocke les réponses du FORM dans des variables.
0
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
J'ai pas dis qu'il fallais un espace, j'ai dis qu'il en a mis un et je crois pas que ça aide.
0
canardwifi
 
merci de votre aide

Voila ce que j ai fait ans succès

$zone=$_POST['zone'];
$format=$_POST['format'];
$dvd2=$_POST['dvd2'];

if (isset($_POST['ok']))

{

$sql2= "UPDATE general SET zone='".$zone."', format='".$format."' WHERE dvd='".$dvd2."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

if(isset($req2))
{
echo "Modification OK" ;
}
}
?>
0

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

Posez votre question
Utilisateur anonyme
 
Oups autant pour moi... De toute façon qu'il y en ai un ou pas ça ne change rien.

Pour le reste en effet, ça pose problème (surtout le riders2)...
0
canardwifi
 
oups je me suis trompé c était pas if (isset($_POST['riders2'])) mais bien if (isset($_POST['ok'])) je ne comprends vraiment pas
0
Utilisateur anonyme
 
ça ne fonctionne toujours pas ?
Le saut de ligne entre le if et le {, je ne sais pas si ça passe...
0
canardwifi
 
c est vrai que mon code est pas tres propre :-( je viens d faire la modif et toujours pas
0
canardwifi
 
peut etre cela pourra vous aider j ai fait un echo devant $sql2 voila le resultat quand je clique sur modifier je voulais changer seulement le champ format

UPDATE general SET zone='', format='4' WHERE dvd='/'Modification OK
0
canardwifi
 
bon tant pis merci de votre aide
0
Utilisateur anonyme
 
Je viens de penser à un truc qui m'est arrivé avec une base de données. Je ne parvenais ni à insérer, ni à modifier si ce que je voulais entrer dans ma base contenait certains caractères... je ne sais plus lesquels cependant... c'est peut-être ça ton problème.

Sinon, le mysql_error il ne détecte rien ?
0