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 :

insertion des données dans une base de donnée mysql via un formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut insertion des données dans une base de donnée mysql via un formulaire
    bonjour à tous
    il y a déjà 3 mois que je n'arrive pas a avancé avec php suite à la connexion avec la bdd mysql. j ai crée une bdd nommé membre, la table agent avec 3 champs id,nom,prenom. id est au_increment.
    je vous envoi le code d'insertion et l'eurreur.

    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
    <?php
    // on verifie la presence pour eviter des erreurs
    $nom=$_POST('nom')
    $prenom=$_POST['prenom']
    //connexion a la bdd
    $lien=new PDO ('mysql :host=localhost; db=membre','root','');
     
    //creation de la requete sql
    $sql="INSERT INTO agent (' $nom','$prenom');
    $reponse= $lien->exec ($sql);
    //on teste sur le retour et on affiche une une erreur en cas de soucis
    if(! $reponse)
       {
          echo (' insertion impossible)
    }else
       echo ('ajout effectue')
      return
      $lien;
    }
    catch (Exception echoue au  serveur');
    }
    ?>
    voici l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec($sql); if(! $reponse) { echo('insertion impossible'); }else echo('ajout effectue') return $lien; } catch(Exception $erreur) { echo('connexion echoue au serveur'); } ?>
    merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Août 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    SLT moi pour mon formulaire j'ai fait comme ceci et ça marche tres bien:
    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
     
    <?php
     
    // on teste si le visiteur a soumis le formulaire
     
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
     
    	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
     
    	if ( !empty($_POST['login']) && !empty($_POST['email']) && !empty($_POST['pass']) && !empty($_POST['pass_confirm']) && !empty($_POST['nom']) && !empty($_POST['prenom'])) {
     
         // on teste si syntaxe email est exacte 
    	else {
     
    		$connexion = mysqli_connect ('localhost', 'root', '', 'mysql');
     
    		//mysql_select_db ('mysql', $base);
     
     
     
    		// on recherche si ce login est déjà utilisé par un autre membre
     
    		$sql = 'SELECT count(*) FROM membres WHERE login="'.mysqli_escape_string($connexion, $_POST['login']).'"';
     
    		$req = mysqli_query($connexion, $sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error($connexion));
     
    		$data = mysqli_fetch_array($req);
     
     
     
    		if ($data[0] == 0) {
     
    		$sql = 'INSERT INTO membres VALUES("", "'.mysqli_escape_string($connexion, $_POST['login']).'", "'.mysqli_escape_string($connexion, $_POST['email']).'", "'.mysqli_escape_string($connexion, md5($_POST['pass'])).'", "'.mysqli_escape_string($connexion, $_POST['nom']).'", "'.mysqli_escape_string($connexion, $_POST['prenom']).'" )';
     
    		$req = mysqli_query($connexion, $sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error($connexion));
     
     
     
    		session_start();
     
    		$_SESSION['login'] = $_POST['login'];
     
    		header('Location: membre.php');
     
    		exit();
     
    		}
     
    		else {
     
    		$erreur = '<p style="color:#9C1900;">Un membre possede deja ce login.</p>';
     
     	    }
     
        }
    	}
     
    }
     
    ?>
    PS:Ma table se nomme "membres"
    Les info sont bien insérée dans ma table donc tu peux faire comme ça,en espérant t'avoir aidé

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    oui quand j ai essayé d'executer on me renvoi un message d'erreur à partir de:
    '.$sql.'
    .mysqli_error($connexion)); $date=mysqli_fetch_array($req) jusqu'a la fin
    que dois je faire, peut etre j ai oublié quelque truc

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Attention, le code de Samix utilise mysqli alors que ton code d'origine utilise PDO. Il faut choisir : c'est l'un ou l'autre, pas les deux en même temps dans le même script.

    Ensuite, ce que tu as ne ressemble pas à un message d'erreur, ça m'a davantage l'air d'un morceau de ton code. Pour vérification, si tu affiches la source de ta page dans ton navigateur (clic-droit > "Afficher le code source de la page" ou équivalent en fonction de ton navigateur), qu'est-ce que tu obtiens ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom=$_POST('nom')
    $prenom=$_POST['prenom']
    C'est quoi cette "syntaxe" (des parenthèses ?? pas de ; à la fin...) ??

    2- il manque une apostrophe " avant le ;
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="INSERT INTO agent (' $nom','$prenom');

    3- D'autre part, il faut faire une requête préparée.

    4- $lien=new PDO (...). Utilise un autre nom de variable : $pdo ou $cnx par exemple ($lien va finir par entrainer une confusion...)



    En 3 mois, tu n'as pas eu le temps de LIRE la documentation ??

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    mon deuxieme message c'est le code de Samix que j'ai copié, pu executé en local. Je n'est pa pu associé les deux scripte, lui a utilisé API mysqli, moi PDO. Mon souçi est ainsi, pouriez vous m'aidé à corriger mon script d'origine en m'expliquant clairement ce que j'ai oublié ou ce que je peux faire. merci d'avance

  7. #7
    Invité
    Invité(e)
    Par défaut

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour vérification, si tu affiches la source de ta page dans ton navigateur (clic-droit > "Afficher le code source de la page" ou équivalent en fonction de ton navigateur), qu'est-ce que tu obtiens ?
    Tu obtiens le code PHP dans la source de ta page ? dans son intégralité ?

    Tu as bien un script avec une extension .php accédé par un serveur PHP ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    des explication precise
    Inscrit en
    Janvier 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : des explication precise

    Informations forums :
    Inscription : Janvier 2018
    Messages : 18
    Points : 1
    Points
    1
    Par défaut
    bonsoir à tous
    celira quand je fais clic droit, j'obtiens la page et le code source en intergralité.
    sans extension php.

Discussions similaires

  1. [MySQL] Problème d'insertion des accents dans une base de donnée MYSQL
    Par maroon1970 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2011, 18h35
  2. insertion des image dans une base de données oracle
    Par tayeb_dev dans le forum Oracle
    Réponses: 2
    Dernier message: 12/08/2011, 01h48
  3. Réponses: 1
    Dernier message: 24/12/2010, 13h06
  4. insertion des blob dans une base de données
    Par ala1986 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/04/2009, 15h48
  5. Réponses: 5
    Dernier message: 10/01/2008, 08h47

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