Php/mysql probleme update

Résolu/Fermé
jupiter - 3 août 2009 à 16:47
 jupiter - 4 août 2009 à 10:03
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
3 août 2009 à 20:42
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
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
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 samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
4 août 2009 à 10:01
cassette='Réf: titre: ',

la virgule est en trop :)
0

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

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

bonne journée merci encore
0