Php/mysql probleme update

Résolu
jupiter -  
 jupiter -
Bonjour,

ja i ce script qui affiche bien ce que je veux mais l update ne fonctionne pas j ne comprends pas pourquoi ...

Merci de votre aide

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">
<html Xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>DVD</title>
<link href="formulaire.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div align="center">
<a href="https://www.google.com/?gws_rd=ssl"><IMG SRC="images/dvd.jpg" ALT="dvd" TITLE="dvd" BORDER="no" width="500px" height="250px" ></a>
</div>
<p><p/>
<p><p/>
<p><p/>

<fieldset id="field">

<br />
<?php
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'root');
define('DB_SERVER_PASSWORD', '');
define('DB_DATABASE', 'mediapourvous');


$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db(DB_DATABASE, $connect);
$rq = "SELECT id, dvd FROM support";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");
echo "<form action='dvd.php' method='post'><select name='dvd'>";
while ($liste=mysql_fetch_array($result))
{
extract($liste);
if(isset($_POST['dvd']) && $dvd == $_POST['dvd'])
echo "<option value='$dvd' selected>$dvd\n";
else
echo "<option value='$dvd'>$dvd\n";
}
echo "</select>\n";
echo "<input type='submit'"."value='Go'></form>\n";

if(isset($_POST['dvd']))
{
$sql = "SELECT * FROM support WHERE dvd='".$_POST['dvd']."'" ;
$req = mysql_query($sql) or die( mysql_error() ) ;
$total = mysql_num_rows($req);
{
echo '<form method ="post" action="dvd.php">';
echo '<table>'."\n";
echo '<tr>';
echo '<th ><b>dvd</b></th>';
echo '<th ><b>cd</b></th>';
echo '<th><b>cassette</b></th>';
echo '</tr>'."\n";
while($row = mysql_fetch_array($req))
{
echo '<tr>';
echo '<td>'.$_POST['dvd'].'</td>';
echo '<td><textarea row="3" name="dvd" value=votre texte />
Réf:
titre:

</textarea></td>';
echo '<td><textarea row="4" name="cd" value=votre texte />
Réf:
titre:
</textarea></td>';
echo '<td><textarea row="3" name="casette" value=votre texte />
Réf:
titre:
</textarea></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
echo '<input type="hidden" name="dvd2" value="'.$_POST['dvd'].'" /><br><input type="submit" name="ok" value="Modifier"/>';
echo '</form>';
}
}

if (isset($_POST['ok']))
{
echo $sql2= "UPDATE support SET dvd='".$_POST['dvd']."', cd='".$_POST['cd']."', cassette='".$_POST['cassette']."',
WHERE dvd='".$_POST['dvd2']."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
}
if(isset($req2))
{
echo '<form method="POST" action="support2.php" enctype="multipart/form-data">';
echo '<table>'."\n";
echo '<tr>';
echo '<td><input type="hidden" name="MAX_FILE_SIZE" value="10000000"></td>';
echo '<td>Joindre la pochette de votre support : <input type="file" name="fichier">/n</td>';
echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>';
echo '</tr>'."\n";
echo '</table>'."\n";
echo '<input type="submit" name="Ok" value="Modifier"/></center>';
echo '</form>';
}

?>
</fieldset>
</div>
</body>
</html>
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
voir commentaires et corrections:

if (isset($_POST['ok']))
{//il ne faut pas mettre l'echo devant $sql2
$sql2= "UPDATE support SET dvd='".$_POST['dvd']."', cd='".$_POST['cd']."', cassette='".$_POST['cassette']."',
WHERE dvd='".$_POST['dvd']."'";
//ensuite pourqoui passes tu par un champ caché dvd2 qui ne prend une valeur qu'au deuxième chargemnt de la page hors il me semble que tu fais ton UPDATE juste avant
//donc mets simplement $_POST['dvd']
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
}
//if(isset($req2)) //ça c'est un test bidon, isset veut est ce que la variable est déclarée ou existe , tu la décklare jsute au dessus 
//mets:

if($req2){ //si la requette true donc n'a pas retourné false
{
0
jupiter
 
Bonjour

merci pour toutes ces remarques alors :

"//il ne faut pas mettre l'echo devant $sql2" : vi c'était juste pour voir si moa requête se passait bien :-)

"ensuite pourquoi passes tu par un champ caché dvd2 qui ne prend une valeur qu'au deuxième chargement de la page hors il me semble que tu fais ton UPDATE juste avant' : Sinon il n me récupère pas le POST et ne sait pas dans quel champ écrire ....

avec ta suggestion j obtiens ca : 'WHERE dvd=''' et avec mon champ cache j obtiens ça 'WHERE dvd='dvd 1''

//if(isset($req2)) //ça c'est un test bidon, isset veut est ce que la variable est déclarée ou existe , tu la décklare jsute au dessus : oki merci pour l'info je viens de modifier

Cependant j ai toujours mon problème d'update et je ne m en sors pas voila le message que j obtiens :

Erreur SQL !UPDATE support SET dvd='Réf: 10 titre: ', cd='ref: titre: ', cassette='Réf: titre: ', WHERE dvd='Dvd 1'
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 'WHERE dvd='dvd 1'' at line 2
0
jupiter
 
pour info quand je met ma requette dans phpmyadmin voila le resultat

ERROR: Apostrophe non fermé @ 179
STR: '
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
cassette='Réf: titre: ',

la virgule est en trop :)
0

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

Posez votre question
jupiter
 
nickel chrome c'était ça comme quoi une petite virgule et ma vie bascule lol

bonne journée merci encore
0