Problème : You have an error in your SQL syntax...

ViPHP
AB
ViPHP | 5818 Messages

18 août 2010, 18:05

ET pour compléter, lorsque tu récupère tes données de ta base, utilise stripslashes()
Pourquoi faire :?:

Eléphanteau du PHP | 11 Messages

18 août 2010, 20:55

merci pour ces réponses !

J'ai saisie ton code et la page modification3.php est passée. J'ai même eu le message de confirmation de la modification à l'écran, sans erreur. Sur la page d'affichage de la liste de mes dvd, la ligne modifiée est restée la même. Elle n'est pas, modifiée ?? Même après un F5 et un vidage du cache de Firefox...
Peut-être encore un problème avec ma requête sql sur modification3 ??

Que dois je faire ?

Merci
Patoche

ViPHP
xTG
ViPHP | 7331 Messages

18 août 2010, 21:09

Dans modification2.php tu n'as pas mis de champs id_dvd, champ que tu tentes de récupérer dans modification3.php

Tu n'aurais pas mis de @ que tu aurais vu l'erreur tout de suite. ^_-

Eléphanteau du PHP | 11 Messages

18 août 2010, 22:46

Houaaaaaaaaaaaa je vais devenir fou, je ne m'y retrouve pas dans ces id-dvd iddvd $id et id....

Est-ce que tu peux jeter un œil sur mes codes suivants :

modification2.php

Code : Tout sélectionner

<?php require "var.inc" ?> <?php require "header.php" ?> <?php require "menu.php" ?> <?php //récupération de la variable d'URL qui va nous permettre de savoir quel enregistrement modifier @$id = $_GET["iddvd"] ; //requête SQL $sql = "SELECT * FROM dvd WHERE id_dvd = ".$id ; //exécution de la requête $requete = mysql_query($sql, $cnx) OR die( mysql_error() ) ; //affichage des données if ($result = mysql_fetch_object($requete)) { ?> <form name="insertion" action="modification3.php" method="POST"> <table> <tr><td>ID </td><td> <input type="text" name="id_dvd" value="<?php echo($result->id_dvd) ;?>" disabled></td></tr> <tr><td>Rubrique </td><td> <input type="text" name="rub" value="<?php echo($result->rub) ;?>" disabled /> <SELECT name="rub" size="1"> <OPTION value="Autres" selected> Autre <OPTION value="Documentaire"> Documentaire <OPTION value="Enfant"> Enfant <OPTION value="Fantastique"> Fantastique <OPTION value="Films_musicaux"> Films musicaux <OPTION value="Humour"> Humour <OPTION value="Sagas"> Sagas <OPTION value="Spectacles"> Spectacles <OPTION value="Tous_publics"> Tous publics <OPTION value="Westerns"> Westerns </SELECT></td></tr> <tr><td>Nom </td><td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td></tr> <tr><td>Sortie </td><td><input type="text" name="sor" value="<?php echo($result->sor) ;?>"></td></tr> <tr><td>Commentaire </td><td><input type="text" name="com" value="<?php echo($result->com) ;?>"></td></tr> <tr><td>Affiche </td><td><input type="text" name="aff" value="<?php echo($result->aff) ;?>"></td></tr> <tr><td colspan="2"><input type="submit" value="modifier"></td></tr> </table> </form> <?php }//fin if ?> <?php require "footer.php" ?>
modification3.php

Code : Tout sélectionner

<?php require "var.inc" ?> <?php require "header.php" ?> <?php require "menu.php" ?> <?php //récupération des valeurs des champs: //id : $id = @$_POST["id_dvd"] ; //rub : $rub = $_POST["rub"] ; //nom : $nom = $_POST["nom"] ; //sortie : $sor = $_POST["sor"] ; //Commentaie: $com = $_POST["com"] ; //Affiche: $aff = $_POST["aff"] ; //récupération de l'identifiant du DVD: $id = @$_POST["id_dvd"] ; //création de la requête SQL: $sql = "UPDATE dvd SET id_dvd = ($id) rub = ($rub), nom = ($nom), sor = ($sor), com = ($com), aff = ($aff) WHERE id_dvd = ($id) " ; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) OR die( mysql_error() ) ; //affichage des résultats, pour savoir si la modification a marchée: if($requete) { echo("La modification à été correctement effectuée ") ; } else { echo("La modification à échouée") ; } ?> <?php require "footer.php" ?>
Super merci
Patoche

ViPHP
AB
ViPHP | 5818 Messages

19 août 2010, 01:44

C'est un bin's ton code. tu devrais le refaire.

Déjà pourquoi trois scripts pour faire ta modification ? Tu pourrais pas regrouper ça sur une seule page ? ou au minimum regrouper les 2 et 3 ?

Et puis on écrit pas :
$id  = @$_POST["id_dvd"] ;
pas plus que
@$id  = $_GET["iddvd"] ;
mais entre autre :
$id  = isset($_POST["id_dvd"]) ? $_POST["id_dvd"] : '';
//et
$id  =  isset($_GET["iddvd"]) ? $_GET["iddvd"]  : '';
Pour la syntaxe voir des explications ici

Pourquoi aussi employer des index différents "id_dvd" pour les $_POST et "iddvd" pour les $_GET ? Pour t'embrouiller ?

Manifestement tu n'a pas suffisamment de bases pour faire ce que tu veux faire. Faudrait faire un peu plus de tutos et d'exercices avant de commencer à programmer un véritable site sinon t'a pas fini de t'arracher les cheveux :wink:

Commences d'abord par essayer de regrouper tes deux derniers scripts de modification en un seul en tenant compte des remarques que j'ai faites plus haut et montres nous ton code.

Eléphanteau du PHP | 11 Messages

19 août 2010, 15:12

OK je vais faire ça, et je vous tiens au courant, mais pas avant lundi, car "week-end campagne", pour ce changer les idées. En tout cas merci pour vos messages.
Patoche