IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Syntax Error et partie de champs manquante [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Par défaut Syntax Error et partie de champs manquante
    Bonjour à tous,

    J essaye de faire un tableau qui extrait les données d'une table Users et dans lequel je peux modifier les valeurs.
    J'ai 2 problèmes :
    - Pour ce qui est du Champ NomComplet, c'est un champ composé du nom et du prénom.
    Dans le tableau, il m'affiche uniquement le Nom et oublie l'espace et le prénom.
    - L'autre problème, quand je cliques sur le bouton modifier après avoir modifier un champs, j'ai une erreur : ClientErreur : 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 id = '13'' at line 3

    L'ID 13 est bien l'id du User que je veux modifier.
    J'ai fait un echo des valeurs pour vérifier, tout est ok sauf le champs NomComplet.

    Voici le code: Merci beaucoup !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php include('_connexion.php'); ?>
    <?php 
    $select = "SELECT * FROM Users ORDER BY Nom ASC";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    if($total) 
    {
    	//		debut du tableau
    	echo '<div align="center">'; 
    	echo '<table bgcolor="#FFFFFF">'."\n";
    	echo '<tr>';
    	echo 'LISTE DES UTILISATEURS AU ';
    	setlocale (LC_ALL, 'fr_FR'); 
    	echo (strftime("%A %d %B")); 
    	echo '<br>';
    	echo '<br>';
    	echo '<td bgcolor="#005AA9"><b><u>id</u></b></td>';
    	echo '<td bgcolor="#005AA9"><b><u>Nom</u></b></td>';
    	echo '<td bgcolor="#005AA9"><b><u>Prenom</u></b></td>';
        echo '<td bgcolor="#005AA9"><b><u>Nom Complet</u></b></td>';
    	echo '<td bgcolor="#005AA9"><b><u>Login</u></b></td>';
        echo '<td bgcolor="#005AA9"><b><u>Password</u></b></td>';
    	echo '<td bgcolor="#005AA9"><b><u>Mail</u></b></td>';
    	echo '<td bgcolor="#005AA9"><b><u>Groupe</u></b></td>';
    	echo '</tr>'."\n";
    	$i = 0;
    	while($row = mysql_fetch_array($result, MYSQL_BOTH)) 
    	{	
    		$color = ++$i % 2 ? '#CCCCCC' : '#FFFFFF';	
    		echo '<tr>';
    		echo '<form action="" method="POST">';
    		echo '<td> <input readonly method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="id" value='.$row['id'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="Nom" value='.$row['Nom'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="Prenom" value='.$row['Prenom'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="NomComplet" value='.$row["NomComplet"].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="Login" value='.$row['Login'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; margin:auto; background-color:'.$color.'" name="Password" value='.$row['Password'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; margin:auto; background-color:'.$color.'" name="Mail" value='.$row['Mail'].'></td>';
    		echo '<td> <input method="POST" style="border-style: none; border:0; margin:auto; background-color:'.$color.'" name="Groupe" value='.$row['Groupe'].'></td>';
    		echo '<td><input type="submit" name="Modifier" value="Modifier"/> </form>';
    		echo '<td><input type="submit" name="Supprimer" value="Supprimer"/> </form>';
    		echo '</tr>'."\n";
    		// size=""
    	}
    	echo '</table>'."\n";
    	echo '</div>';
    	//	fin du tableau.
    	if(isset($_POST['Modifier'])) // si un clic a été fait sur le bouton submit (Modifier)
    	{
    		$id=$_POST['id'];
    		$Nom=$_POST['Nom'];
    		$Prenom=$_POST['Prenom'];
    		$NomComplet=$_POST['NomComplet'];
    		$Login=$_POST['Login'];
    		$Password=$_POST['Password'];
    		$Mail=$_POST['Mail'];
    		$Groupe=$_POST['Groupe'];
    		 echo $id;
    		 echo $Nom;
    		 echo $Prenom;
    		 echo $NomComplet;
    		 echo $Login;
    		 echo $Password;
    		 echo $Mail;
    		 echo $Groupe;
     
    		$reqModif = "UPDATE Users SET Nom = '$Nom',  
    			Prenom = '$Prenom', Login = '$Login', Password = '$Password', Mail = '$Mail', Groupe = '$Groupe',
    			WHERE id = '$id'";
    		$res = mysql_query($reqModif) or die ('Erreur : '.mysql_error() );
    		$tot = mysql_free_result($res);
    	}
     
    	}
    mysql_close();  // on ferme la connexion 
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    NomComplet ne sert à rien puisque tu as déjà Nom et Prénom.
    D'ailleurs tu ne l'as pas mis dans l'UPDATE.

    Ton problème vient des guillemets oubliés dans ton formulaire pour l'attribut value de tous les input.

    Pour la requête, tu as une virgule avant le WHERE.
    Il manque également tous les echappement de tes valeurs $_POST.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Groupe=mysql_real_escape_string($_POST['Groupe']);
    Et pour finir, il faudrait passer à CSS. Les balises <b> ça ne se fait plus pour mettre du texte en gras.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Par défaut
    Merci beaucoup pour ta réponse !
    Pour le nom complet, j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NomComplet= $Nom." ".$Prenom;
    Et ensuite je l'insère dans l'update.

    Par contre, je ne comprends pas pourquoi dans mon tableau, il m'affiche que la première partie du NomComplet.
    Je ne vois pas mon erreur de guillemets dans l'attribut. J'ai essayé de remplacer des quotes par des guillemets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td> <input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="Nom" value='.$row['Nom'].'></td>';
    Peux tu me dire mon erreur ?

    J'ai ajouté les échappements?

    Concernant le CSS, j'ai créé un fichier style.css.
    Mais comme tu l'as remarqué, je débute... Je verrai pour intégrer mes appels CSS après avoir corrigé mes erreurs.

    Merci encore.
    Bonne soirée.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><input method="POST" style="border-style: none; border:0; background-color:'.$color.'" name="Nom" value="'.$row['Nom'].'"></td>';
    Pour le nom complet, c'est toujours inutile puisque que tu as deja les informations nom et prenom dans ta base de données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Par défaut
    Merci, avec les guillemets, j'ai bien mon nom complet affiché !
    Lorsque tu dis que c est inutile, c'est que tu me conseilles de reconstruire le nom complet lorsque j'en ai besoin en concaténant Nom et Prénom et ne pas le stocker en base ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    oui c'est tout à fait ça.
    Tu peux meme l'avoir directement par la requête avec CONCAT()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. syntax error
    Par ludovik dans le forum C
    Réponses: 5
    Dernier message: 18/03/2006, 21h32
  2. Syntax error
    Par vincedjs dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2006, 16h58
  3. Recherche par une partie du champ
    Par safadev dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2005, 14h20
  4. Syntax Error / Questions
    Par kedare dans le forum Général Python
    Réponses: 15
    Dernier message: 12/09/2005, 14h05
  5. "vector" provoque "syntax error", malgré
    Par seenkay dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/08/2003, 03h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo