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 :

INSERT et UPDATE qui ne fonctionnent pas [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut INSERT et UPDATE qui ne fonctionnent pas
    Bonjour.

    Je dois avoir un problème de syntaxe quelque part mais je n'arrive à trouver.
    fichier fonctions.php
    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
    function enregistrer_action($id_etablist, $date_depot, $intitule, $mots_cles, $resume, $date_debut, $date_fin, $lieu, $action, $public, $nombre, $choix, $choix_personne, $choix_autre, $concertation, $concert_partenaires, $concert_forme, $evaluation, $eval_forme, $eval_precis, $detail_action)
    {
    	$id_etablist = mysql_real_escape_string($id_etablist);
    	$date_depot = mysql_real_escape_string($date_depot);
    	$intitule = mysql_real_escape_string($intitule);
    	$mots_cles = mysql_real_escape_string($mots_cles);
    	$resume = mysql_real_escape_string($resume);
    	$date_debut = mysql_real_escape_string($date_debut);
    	$date_fin = mysql_real_escape_string($date_fin);
    	$lieu = mysql_real_escape_string($lieu);
    	$action = mysql_real_escape_string($action);
    	$public = mysql_real_escape_string($public);
    	$nombre = mysql_real_escape_string($nombre);
    	$choix = mysql_real_escape_string($choix);
    	$choix_personne = mysql_real_escape_string($choix_personne);
    	$choix_autre = mysql_real_escape_string($choix_autre);
    	$concertation = mysql_real_escape_string($concertation);
    	$concert_partenaires = mysql_real_escape_string($concert_partenaires);
    	$concert_forme = mysql_real_escape_string($concert_forme);
    	$evaluation = mysql_real_escape_string($evaluation);
    	$eval_forme = mysql_real_escape_string($eval_forme);
    	$eval_precis = mysql_real_escape_string($eval_precis);
    	$detail_action = mysql_real_escape_string($detail_action);
     
        	$sql = "INSERT INTO actions(id_action, id_etablist, date_depot, intitule, mots_cles, resume, date_debut, date_fin, lieu, type_action, public, nombre, choix, choix_personne, choix_autre, concertation, concert_partenaires, concert_forme, evaluation, eval_forme, eval_precis, detail_action)
    		       VALUES('', '$id_etablist', '$date_depot', '$intitule', '$mots_cles', '$resume', '$date_debut', '$date_fin', '$lieu', '$action', '$public', '$nombre', '$choix', '$choix_personne', '$choix_autre', '$concertation', '$concert_partenaires', '$concert_forme', '$evaluation', '$eval_forme', '$eval_precis', '$detail_action')";
    	// insertion du formulaire dans la table 
        	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    }
    fichier dossier_candidature.php
    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
    77
    78
    79
    $lieu = "";
    if (isset($_POST['lieu']))			$lieu = $_POST['lieu'];
    else $lieu = "";
    if (empty($lieu))	$message30 = "Page 2, merci d'indiquer le lieu où c'est déroulée l'action."; 
    //clic sur le bouton "valider le dossier"
    if (isset($_POST['valider'])){
    		enregistrer_action($id_etablist, $date_depot, $intitule, $mots_cles, $resume, $date_debut, $date_fin, $lieu, $action, $public, $nombre, $choix, $choix_personne, $choix_autre, $concertation, $concert_partenaires, $concert_forme, $evaluation, $eval_forme, $eval_precis, $detail_action);
    		$id_action = mysql_insert_id();
    		echo "Le dossier est enregistré";
    		$fonction = "";		
    }
    //clic sur le bouton "valider les modifications"
    if (isset($_POST['modifier'])){
        		$sql = "UPDATE actions SET id_etablist = '$id_etablissement', date_depot = '$date_depot' , intitule = '$intitule' , mots_cles = '$mots_cles' , resume = '$resume' , date_debut = '$date_debut' , date_fin = '$date_fin' , lieu = '$lieu' , type_action = '$action' , public = '$public' , nombre = '$nombre' , choix = '$choix' , choix_personne = '$choix_personne' , choix_autre = '$choix_autre' , concertation = '$concertation' , concert_partenaires = '$concert_partenaires' , concert_forme = '$concert_forme' , evaluation = '$evaluation' , eval_forme = '$eval_forme' , eval_precis = '$eval_precis' , detail_action = '$detail_action' WHERE id_etablist = $id_etablissement"; 
    	    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    }
    //récupération des données insérées
    if (isset($id_etablist)){
    		//récupération de l'action
    		$sql = mysql_query("SELECT * FROM actions WHERE id_etablist = $id_etablist");
    		if (mysql_num_rows($sql) > 0)
    		{
    			$res = mysql_fetch_array($sql);
    			$id_action = $res['id_action'];
    			$dateDebut = $res['date_debut'];
    			$dateDebut = explode("-", $dateDebut);
    			$ansd = $dateDebut[0];
    			$moisd = $dateDebut[1];
    			$dateFin = $res['date_fin'];
    			$dateFin = explode("-", $dateFin);
    			$ansf = $dateFin[0];
    			$moisf = $dateFin[1];
    			$lieu = $res['lieu'];		
    			$action = $res['type_action'];
    			$action = explode(",",$action);
    			$public = $res['public'];
    			$public = explode(",",$public);
    			$nombre = $res['nombre'];
    			$choix = $res['choix'];
    			$choix_personne = $res['choix_personne'];
    			$choix_personne = explode(",",$choix_personne);
    			$choix_autre = $res['choix_autre'];
    			$concertation = $res['concertation'];
    			$concert_partenaires = stripslashes(nl2br(htmlentities(trim($res['concert_partenaires']))));
    			$concert_partenaires = str_replace("<br />",'',$concert_partenaires);
    			$concert_forme = stripslashes(nl2br(htmlentities(trim($res['concert_forme']))));
    			$concert_forme = str_replace("<br />",'',$concert_forme);
    			$evaluation = stripslashes(htmlentities(trim($res['evaluation'])));
    			$evaluation = explode(",",$evaluation);
    			$eval_forme = stripslashes(nl2br(htmlentities(trim($res['eval_forme']))));
    			$eval_forme = str_replace("<br />",'',$eval_forme);
    			$eval_precis = stripslashes(nl2br(htmlentities(trim($res['eval_precis']))));
    			$eval_precis = str_replace("<br />",'',$eval_precis);
    			$intitule = stripslashes(nl2br(htmlentities(trim($res['intitule']))));
    			$intitule = str_replace("<br />",'',$intitule);
    			$mots_cles = stripslashes(nl2br(htmlentities(trim($res['mots_cles']))));
    			$mots_cles = str_replace("<br />",'',$mots_cles);
    			$resume = stripslashes(nl2br(htmlentities(trim($res['resume']))));
    			$resume = str_replace("<br />",'',$resume);
    			$detailTab = stripslashes(nl2br(htmlentities(trim($res['detail_action']))));
    			$detailTab = str_replace("<br />",'',$detailTab);
    			$detailTab = explode("couper_ici ",$detailTab);
    			$nb = count($detailTab);
    			$detailTab = str_replace("couper_ici ",'',$detailTab);
    			if ($nb==1){
    				$detail1 = $detailTab[0];
    			}
    			else if ($nb == 2) {
    				$detail1 = $detailTab[0];
    				$detail2 = $detailTab[1];
    			}
    			else if ($nb == 3) {
    				$detail1 = $detailTab[0];
    				$detail2 = $detailTab[1];
    				$detail3 = $detailTab[2];
    			}	
    		}
    }
    include 'formulaire_candidature.php';
    fichier formulaire_candidature.php
    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
    <div id="div1" class="visible">
    <form name="dossier" method="POST" action="index.php?page=dossier">
    <table>
       ...
     
    			<br />
    			<span style="margin-left:20px">- Lieu du déroulement de l'action * : &nbsp;&nbsp;<input type="text" name="lieu" value="<?php echo stripslashes(htmlentities(trim($lieu))); ?>" style="width:410px; font-size:13px" /></span>
    			<br /><br />
    </table>
    <?php
    if (!empty($id_etablissement)){
    	echo '<p align="center"><input type="submit" name="modifier" value="Valider les modifications"></p>';
    }
    else {
    	echo '<p align="center"><input type="submit" name="valider" value="Valider le dossier"></p>';
    }
    ?>
    </form>
    </div>
    Si <input type="text" name="lieu" ....> je saisi "dans entreprise", l'insertion et la modification se font sans problème.
    Par contre si je saisi "dans l'entreprise", j'ai un message d'erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !UPDATE actions SET id_etablist = '1', date_depot = '2008-07-09' , intitule = '' , mots_cles = '' , resume = '' , date_debut = '2005-02-01' , date_fin = '2006-10-01' , lieu = 'dans l'entreprise' , type_action = '' , public = '' , nombre = '' , choix = '' , choix_personne = '' , choix_autre = '' , concertation = '' , concert_partenaires = '' , concert_forme = '' , evaluation = '' , eval_forme = '' , eval_precis = '' , detail_action = '' WHERE id_etablist = 1
    Erreur de syntaxe près de 'entreprise' , type_action = '' , public = '' , nombre = '' , cho' à la ligne 1
    j'ai beau regarder je ne vois pas où est l'erreur.

    Un oeil neuf verra certainement le problème.
    Merci d'avance

  2. #2
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Dans la partie du code où tu réalises ton update...

    Tu dois encore utiliser la fonction mysql_real_escape_string pour échapper les caractères spéciaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //clic sur le bouton "valider les modifications"
    if (isset($_POST['modifier'])){
        		$sql = "UPDATE actions SET id_etablist = '$id_etablissement', date_depot = '$date_depot' , intitule = '$intitule' , mots_cles = '$mots_cles' , resume = '$resume' , date_debut = '$date_debut' , date_fin = '$date_fin' , lieu = '$lieu' , type_action = '$action' , public = '$public' , nombre = '$nombre' , choix = '$choix' , choix_personne = '$choix_personne' , choix_autre = '$choix_autre' , concertation = '$concertation' , concert_partenaires = '$concert_partenaires' , concert_forme = '$concert_forme' , evaluation = '$evaluation' , eval_forme = '$eval_forme' , eval_precis = '$eval_precis' , detail_action = '$detail_action' WHERE id_etablist = $id_etablissement"; 
    	    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    }
    ++

  3. #3
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Je savais bien qu'un oeil neuf verrait le problème
    ça marche

  4. #4
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    cool!

    bon dev!

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

Discussions similaires

  1. [MySQL] insertion et update qui ne fonctionnent pas
    Par nox77 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 24/06/2010, 13h27
  2. [MySQL] Code PHP sur des UPDATE qui ne fonctionne pas
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2007, 11h57
  3. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  4. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  5. [MySQL] UPDATE qui ne fonctionne pas
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2005, 14h35

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