Bonjour à tous.
Petit tour de chauffe pour ceux qui donnent de leur temps afin de faire de nous des débutants moins débutants.
Je vous propose aujourd'hui de m'aider à corriger la syntaxe de ma requête SQL.
Contexte :

Il s'agit d'une page PHP qui traite les données d'un formulaire, "modification des données de la table repertel". Donc j'ai récupéré mes données et je configure la mise à jour de la base avec UPDATE.

Et c'est là que ça pique...

J'ai essayé ceci :
$modif_sql = ("UPDATE repertel 
						SET 
						NOM = '".$_POST['modif_nom']."' , 
						PRENOM = '".$_POST['modif_prenom']."' , 
						FONCTION='".$_POST['modif_fonction']."' , 
						SERVICE='".$_POST['modif_service']."' , 
						TEL= '".$_POST['modif_tel']."' , 
						MAIL= '".$_POST['modif_mail']."' 
						WHERE ID = '".$_POST['modif_id']."'  ") ;

Puis ceci :
$modif_sql = " UPDATE repertel 
						SET 
						NOM = '$modif_nom' ,
						PRENOM = '$modif_prenom',
						FONCTION = '$modif_fonction',
						SERVICE = '$modif_service',
						TEL = '$modif_tel',
						MAIL = '$modif_mail'
						WHERE ID = '$id'  " ;


Là je tourne en rond en mode WTF.
Où ai-je fait une erreur (des erreurs?) ?
salut...

la première est correcte mais tu lances la query où ?? et comment ? elle est peut être là l'erreur plutôt que dans la construction de la requête Smiley smile
La query est juste en dessous.
Like this :
mysql_query ($modif_sql) or die ('Erreur SQL !'.$modif_sql ..mysql_error());

C'est bon à ton avis ?
Smiley confused Mon SQL est un peu rouillé on dirait. Mais le serveur sur lequel je bosse est en PHP 5.4. Donc bon, on va dire que la commande est obsolète mais mon serveur aussi Smiley lol
La connexion je l'ai lancée en début de code, avant le bloc que j'ai collé ici.
Sinon mysqli_query va tourner son mon php 5.4?
Merci pour la lecture en tout cas. Je bookmark.
Salut,

Dans ta première requête, il y a des parenthèses qui n'ont rien à faire là (début et fin).
Sinon tout a l'air bon.

Alors essayes ça si tu veux passer à mysqli, et si ça ne marche toujours pas, copie/colle la requête qui s'affichera à ton écran (celle qui est envoyée avec echo), et testes la dans ton phpmyadmin.

<?php
/* Connexion à la bdd */
$mysqli = new mysqli('localhost', 'user', 'password', 'database');

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
  die('Erreur de connexion : ' . $mysqli->connect_errno);

/* Définition de la requête */
$query  = "
  UPDATE
    repertel
  SET
    NOM      = '".$_POST['modif_nom']."',
    PRENOM   = '".$_POST['modif_prenom']."',
    FONCTION = '".$_POST['modif_fonction']."',
    SERVICE  = '".$_POST['modif_service']."',
    TEL      = '".$_POST['modif_tel']."',
    MAIL     = '".$_POST['modif_mail']."'
  WHERE
    ID       = '".$_POST['modif_id']."'";

/* Envoie de la requête */
$result = $mysqli->query($query);

/* Affichage du nombre de lignes affectées par la requête */
echo "Nombre de lignes affectées (UPDATE): " . $mysqli->affected_rows;

/* Affichage de la requête (comme ça tu vois ce que contiennent tes variables $_POST) */
echo '<pre>' . $query . '</pre>';

?>


Si ça ne marche toujours pas, es-tu sur que les champs de ta table soient en majuscule (ID, NOM, PRENOM etc...) ?
Modifié par taspeur (07 Dec 2017 - 18:46)
Merci pour le coup de pouce.
Bon, mysqli ne fonctionne pas avec ma version de php à priori.
en revanche en supprimant un point devant .mysql_error() , c'est mieux.
J'ai également appliqué le code proposé par Taspeur, pour avoir un visuel sur l'opération. Ce qui m'a permis de voir que l'id ne passait pas : erreur de syntaxe. tout est rentré dans l'odre.
Affaire classée, grâce à vous. Merci encore.
Modifié par Administre_a_tort (08 Dec 2017 - 10:44)
Tant mieux si tu as trouvé le problème.

C'est le premier truc à faire quand une requête ne fonctionne pas. L'afficher pour voir exactement la requête avec le contenu de tes variables. Comme ça tu vois si tes variables n'ont pas un soucis (genre elles sont vides).
Et ensuite tu peux tester ta requête dans phpmyadmin, qui lui te donnera des messages d'erreur précis (il te dira si tel ou tel champ n'existe pas, si la syntaxe n'est pas bonne, etc...)