Php/sql probleme update

Fermé
canardwifi - 18 juin 2009 à 15:55
 Utilisateur anonyme - 19 juin 2009 à 08:58
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
18 juin 2009 à 15:59
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 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
18 juin 2009 à 16:00
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
18 juin 2009 à 16:04
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 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
18 juin 2009 à 16:10
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
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
18 juin 2009 à 16:19
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
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
18 juin 2009 à 16:24
ça ne fonctionne toujours pas ?
Le saut de ligne entre le if et le {, je ne sais pas si ça passe...
0
c est vrai que mon code est pas tres propre :-( je viens d faire la modif et toujours pas
0
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
bon tant pis merci de votre aide
0
Utilisateur anonyme
19 juin 2009 à 08:58
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