Forums Développement Multimédia

Aller au contenu

LE CARROU

Inscrit(e) (le) 15 Nov 2017
Déconnecté Dernière activité Nov 17 2017 15:59 PM
-----

Sujets que j'ai initiés

Insérer, modifier, supprimer des données en PHP

15 November 2017 - 17:10 PM

Bonjour,

Je suis nouveau sur ce site et grand débutant en programmation. Je travaille sous PHP/MySQL.

J'ai débuté le tuto de Qwix sur ce site bien qu'il date un peu (2006). Je l'ai suivi à la lettre et adapté en PDO et tout fonctionne nickel à l'exception des formulaires de suppression mais j'ai prévu d'y revenir plus tard.

Maintenant, j'essaie de l'adapter à mes propres données pour la saisie/modification. J'ai donc une table gbd_dat avec 9 variables toutes en vachar255 à l'exception de l'id et de non_rec qui sont de type int(11).

J'ai réussi à faire mes deux premiers formulaire insertion1.php et insertion2.php et je peux enregistrer des données en base. Par contre, je ne parviens pas à adapter le code pour la modification et j'ai les messages d'erreurs ci-suivants :
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'cor = '' in C:\wamp64\www\infos\modification3.php on line 58
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'cor = '' non_rec = 0 com = '' WHERE id = '33'' à la ligne 8 in C:\wamp64\www\infos\modification3.php on line 58

Je ne sais pas exactement où se situe le problème même si je pense que çà vient de la variable numérique non_rec. Quand je fait un var_dump($_POS[''non_rec"]) je vois que ma variable sort en texte '0' ; j'ai essayé de la passer en numérique avec intval($_POS[''non_rec"]) mais çà ne change rien.

modification1.php


<html>
  <head>
        <title>modification de données en PHP :: partie 1</title>
  </head>
<body>
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

//requête SQL:
$sql = "SELECT * FROM gbd_dat ORDER BY pat, fic, que" ;

//exécution de la requête:
$result = $bdd->query($sql);

//affichage des données:
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
echo(
"<div align=\"center\">"
.$donnees['pat']." ".$donnees['fic']
." <a href=\"modification2.php?idPersonne=".$donnees['id']."\">modifier</a></div>\n"
) ;
}
?>
</body>
</html>
 

modification2.php


<html>
  <head>
        <title>modification de données en PHP :: partie 1</title>
  </head>
<body>
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

//requête SQL:
$sql = "SELECT * FROM gbd_dat ORDER BY pat, fic, que" ;

//exécution de la requête:
$result = $bdd->query($sql);

//affichage des données:
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
echo(
"<div align=\"center\">"
.$donnees['pat']." ".$donnees['fic']
." <a href=\"modification2.php?idPersonne=".$donnees['id']."\">modifier</a></div>\n"
) ;
}
?>
</body>
</html>
 

modification3.php


<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

//récupération des valeurs des champs:
//numéro patient:
$patient = $_POST["pat"] ;
//Fiche:
$fiche = $_POST["fic"] ;
//Question:
$question = $_POST["que"] ;
//Description:
$description = $_POST["des"] ;
//Détails:
$details = $_POST["det"] ;
//Correction:
$correction = $_POST["cor"] ;
//Non récupérable:
$nonrecuperable = intval($_POST["non_rec"]) ;
//Commentaires :
$commentaires = $_POST["com"] ;
var_dump($_POST["pat"]) ;
var_dump($_POST["fic"]) ;
var_dump($_POST["que"]) ;
var_dump($_POST["des"]) ;
var_dump($_POST["det"]) ;
var_dump($_POST["cor"]) ;
var_dump($_POST["non_rec"]) ;
var_dump($_POST["com"]) ;

//récupération de l'identifiant de la personne:
$id = $_POST["id"] ;

//création de la requête SQL:
$sql = "UPDATE gbd_dat
                SET
                pat = '$patient',
         fic = '$fiche',
  que = '$question',
  des = '$description',
  det = '$details'
  cor = '$correction'
  non_rec = $nonrecuperable
  com = '$commentaires'
                WHERE id = '$id' "
;
//exécution de la requête SQL:
$requete = $bdd->query($sql);

//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") ;
}
?>
 

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP