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 :

Liens entre formulaire et base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

doud180878 Liens entre formulaire et... 06/05/2010, 12h19
sabotage Quel erreur rencontres-tu ? ... 06/05/2010, 12h28
doud180878 pardon, l'erreur que je... 06/05/2010, 12h53
julp La méthode prepare retourne... 06/05/2010, 13h27
doud180878 Merci pour votre aide il... 06/05/2010, 15h09
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 87
    Par défaut Liens entre formulaire et base de données
    Bonjour , je suis nouveau sur le forum

    Je suis en train d'apprendre PHP mais malgré il y a des choses que je comprends pas

    J'aurais voulu lier un formulaire tout simple a ma base de donnée et la rappeler mais c'est pas encore ça :

    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
    <form action="trait.php"  method="post">
     
     
    <p><label for="nom"> Rentre le nom du jeu</label>
    <input type="text" id="nom" name="nom" value=""/></p>
     
     
    <p><label for="possesseur"> Rentre ton nom</label>
    <input type="text" id="possesseur" name="possesseur" value=""/></p>
     
    <p><label for="console"> Rentre la console</label>
    <input type="text" id="console" name="console" value=""/></p>
     
    <p><label for="prix"> Rentre le prix</label>
    <input type="text" id="prix" name="prix" value=""/></p>
     
    <p><label for="nbre_joueurs_max"> Rentre le nombre de joueurs</label>
    <input type="text" id="nbre_joueurs_max" name="nbre_joueurs_max" value=""/></p>
     
    <input type="submit" id="boutton" name="boutton" value="envoyer"/>
     
    </form>
    et la relation a ma base

    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
     <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    // On vérifie d'abord s'il n'y a pas de champ vide
     
    if ($_POST['nom'] == NULL OR $_POST['possesseur'] == NULL OR $_POST['console'] == NULL OR $_POST['prix'] == NULL OR $_POST['nbre_joueurs_max'] == NULL)
     
    {
     
    	 echo 'Tous les champs ne sont pas remplis !';
     
    }
     
    else // Si c'est bon, on enregistre les informations dans la base
    {
    $bdd->prepare('INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max) VALUES(:nom, :possesseur, :console, :prix, :nbre_joueurs_max)') or die(print_r($bdd->errorInfo()));
    $bdd->execute(array($_POST['nom'], $_POST['possesseur'], $_POST['console'], $_POST['prix'], $_POST['nbre_joueurs_max'])); 
    }
     
     
     
    ?>

  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
    Quel erreur rencontres-tu ?

    Au passage, si le champ n'est pas rempli, $_POST['champ'] n'est pas NULL mais vaut une chaine vide.
    Tu peux utiliser empty() pour faire ton test.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 87
    Par défaut
    pardon, l'erreur que je rencontre est :
    Fatal error: Call to undefined method PDO::execute() in C:\Program Files\EasyPHP5.2.10\www....

    ce que je veux c'est une entrée par le formulaire dans ma base de donnee. Tout ce que j'obtiens c'est cette erreur et aucune entrée...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    La méthode prepare retourne un objet PDOStatement et c'est à partir de celui-ci qu'on exécute (méthode execute) la requête préparée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $stmt = $bdd->prepare('INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max) VALUES(:nom, :possesseur, :console, :prix, :nbre_joueurs_max)') or die(print_r($bdd->errorInfo(), TRUE));
    if (!$stmt->execute(
        array(
            'nom' => $_POST['nom'],
            'possesseur' => $_POST['possesseur'],
            'console' => $_POST['console'],
            'prix' => $_POST['prix'],
            'nbre_joueurs_max' => $_POST['nbre_joueurs_max'],
        )
    )) {
        list($pdoCode, $internalCode, $msg) = $stmt->errorInfo();
        die(sprintf("[%d:%s] La requête n'est pas passée : %d/%d, %s", __LINE__, basename(__FILE__), $pdoCode, $internalCode, $msg));
    }

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 87
    Par défaut
    Merci pour votre aide

    il me reste plus qu'a...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2015, 13h34
  2. Lien entre formulaire et base de données
    Par sisidu08 dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2014, 10h22
  3. [Débutant] Lien entre deux tables base de données c++ builder 6
    Par fahdmustapha dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/06/2011, 16h46
  4. [problème peu urgent] lien entre formulaire et table
    Par ghyosmik dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 12h23
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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