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 :

update et variables POST [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Points : 11
    Points
    11
    Par défaut update et variables POST
    Bonjour à tous,

    Je n'arrive pas à formuler une requête update (je vous envoie le code de la dernière mouture. Le msg d'erreur me renvoie un pb de syntaxe. J'ai cherché sur des tutos, essayé plusieurs syntaxes mais rien.

    Je vous adresse aussi la liste des vars et leurs valeurs des POST reçus depuis le formulaire d'update. Elles sont toutes là...

    Enfin je voudrais savoir quand protéger mes variables POST, sur le Net certains disent tout le temps d'autres seulement lors des select.

    Merci d'avance pour vos réponses et bonne journée.

    (l'array retournée par mon <rem>...
    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
     
         [nom_plat_1] => fffffffffff
         [nom_plat_2] => eeeeeeeeeeeeee
         [nom_plat_3] => iiiiiiiiiiiiiiiiiii
         [nom_cat] => 0019
         [prix_plat] => 100
         [descr_plat_FR] => fr rrf fff rf  rfr
         [descr_plat_EN] => en n neenenenen
         [descr_plat_IT] => itit ititt iitii i
         [id_type_plat] => 04
         [spicy] => 1
         [id_visible] => 0
         [chem_img_plat] => ../img/img_plats/_zzzessai.jpg
         [id_cat_1] => 0003
         [id_cat_2] => 0029
         [id_cat_3] => 0036
         [id_plat_1] => 0846
         [id_plat_2] => 0847
         [id_plat_3] => 0848
    )
    Le message d'err et le code

    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
     
    Erreur : Erreur de syntaxe près de 'nom_plat = 'fffffffffff', prix_plat = 100, descr_plat = 'fr rrf ff' à la ligne 4 Array (
     
    session_start ();
    if (isset($_SESSION['login']) && isset($_SESSION['pwd']))
     
          {
     
    	$DB_connect = new mysqli('127.0.0.1', 'root', '', 'restaurant_sav');
    	mysqli_set_charset($DB_connect, "utf8");
    	if ($DB_connect->connect_error) {
    		die('Connect Error ('.$DB_connect->connect_errno.') '.$DB_connect->connect_error);
    			}
    			$sql_plats = $DB_connect->query
    			(
    				"UPDATE plats
    				SET
    					id_lang = 1
    					nom_plat = '".$DB_connect->real_escape_string($_POST['nom_plat_1'])."',
    					prix_plat = ".$_POST['prix_plat'].",
    					descr_plat = '".$DB_connect->real_escape_string($_POST['descr_plat_FR'])."',
    					alt_plat = '".$DB_connect->real_escape_string($_POST['nom_plat_1'])."',
    					id_type_plat = ".$_POST['id_type_plat'].",
    					id_cat = ".$_POST['id_cat_1'].",
    					chem_img_plat = '".$DB_connect->real_escape_string($_POST['chem_img_plat'])."',
    					spicy = ".$_POST['spicy'].",
    					id_assoc_plat = ".$_SESSION['id_assoc_plat'].",
    					id_visible = ".$_POST['id_visible']."
    				WHERE
    					id_plat = ".$_POST['id_plat_1']."
     
     
    			");
    			$lien = $DB_connect;
    			if (!$sql_plats)
    			{
    				printf("Erreur : %s\n", mysqli_error($lien));
    			}
    			echo '<pre>';
    			print_r ($_POST);
    			echo '</pre><br />';
    			}
    		else
    			{
    			//header ('location: page_accueil_admin.php');
    		        }

  2. #2
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 430
    Points
    430
    Par défaut
    Pourquoi dans ton SET tu mets parfois '", autrement " ?

    Perso, je mets : nom du champs= 'nom de la variable',

  3. #3
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Il manque une virgule après id_lang = 1.

    Personnellement je ne mets pas de :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    descr_plat = '".$DB_connect->real_escape_string($_POST['descr_plat_FR'])."',

    Je fais plutôt comme ça. C'est plus long à écrire mais c'est plus compréhensible... et propre.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $descr_plat = $DB_connect->real_escape_string($_POST['descr_plat_FR']);
    ....
    descr_plat = '$descr_plat',
    


    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par ddaweb Voir le message
    Pourquoi dans ton SET tu mets parfois '", autrement " ?

    Perso, je mets : nom du champs= 'nom de la variable',
    Merci de ta réponse. Et bien, c'est justement ma question, je crois : comment mettre en place une syntaxe qui marche !?

    Quand je fais comme tu me le dis, soit :

    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
     
    $sql_plats = $DB_connect->query
    					(
    						"UPDATE plats
    						SET
    							id_lang = 1
    							nom_plat = '$DB_connect->real_escape_string($_POST['nom_plat_1'])',
    							prix_plat = '$_POST['prix_plat']',
    							descr_plat = '$DB_connect->real_escape_string($_POST['descr_plat_FR'])',
    							alt_plat = '$DB_connect->real_escape_string($_POST['nom_plat_1'])',
    							id_type_plat = '$_POST['id_type_plat']',
    							id_cat = '$_POST['id_cat_1']',
    							chem_img_plat = '$DB_connect->real_escape_string($_POST['chem_img_plat'])',
    							spicy = '$_POST['spicy']',
    							id_assoc_plat = '$_SESSION['id_assoc_plat']',
    							id_visible = '$_POST['id_visible']'
    						WHERE 
    							id_plat = '$_POST['id_plat_1']'
     
     
    					");
    J'ai, comme résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp64\www\nooris_admin\accueil\traite_update.php on line 28

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par badaze Voir le message
    Il manque une virgule après id_lang = 1.
    Merci aussi pour ta réponse. Oui pour le 1 de id_lang, mais dans mon code il y était, sans doute parti quand j'ai remis le code dans ce post...
    Même en basculant les variables POST j'ai ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp64\www\nooris_admin\accueil\traite_update.php on line 52
    Mais basculées ou pas, mon problème reste. Certains m'ont parlé de PDO, mais apprendre seul est difficile. Pour le moment je ne m'y suis pas penché et j'ai fait toutes mes autres pages de SELECT et INSERT sans PDO et j'ai survecu ...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Voilà, résolu, merci à vous deux pour vos réponses. J'ai basculé les variables et avais oublié de faire la bascule pour la clause WHERE :

    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
                                 $nom_plat = $DB_connect->real_escape_string($_POST['nom_plat_1']);
    					$prix_plat = $_POST['prix_plat'];
    					$descr_plat = $DB_connect->real_escape_string($_POST['descr_plat_FR']);
    					$alt_plat = $DB_connect->real_escape_string($_POST['nom_plat_1']);
    					$id_type_plat = $_POST['id_type_plat'];
    					$id_cat = $_POST['id_cat_1'];
    					$chem_img_plat = $DB_connect->real_escape_string($_POST['chem_img_plat']);
    					$spicy = $_POST['spicy'];
    					$id_assoc_plat = $_SESSION['id_assoc_plat'];
    					$id_visible = $_POST['id_visible'];
    					$id_plat = $_POST['id_plat_1'];
     
     
     
    					$sql_plats = $DB_connect->query
    					(
    						"UPDATE plats
    						SET
    							id_lang = 1,
    							nom_plat = '$nom_plat',
    							prix_plat = '$prix_plat',
    							descr_plat = '$descr_plat',
    							alt_plat = '$nom_plat',
    							id_type_plat = '$id_type_plat',
    							id_cat = '$id_cat',
    							chem_img_plat = '$chem_img_plat',
    							spicy = '$spicy',
    							id_assoc_plat = '$id_assoc_plat',
    							id_visible = '$id_visible'
    						WHERE 
    							id_plat = '$id_plat'
     
    					");
    Bonne soirée à tous et encore merci à ddaweb et badaze ....

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

Discussions similaires

  1. [MySQL] le mot FROM dans une variable postée pour un UPDATE
    Par tiptep dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/04/2008, 19h18
  2. Réponses: 22
    Dernier message: 17/03/2006, 21h42
  3. variable POST
    Par zooffy dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2006, 18h15
  4. [MySQL] Update de variable
    Par tyarak dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/10/2005, 02h59
  5. [CGI]problème update de variable de session
    Par LE NEINDRE dans le forum Web
    Réponses: 1
    Dernier message: 18/10/2005, 10h50

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