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 DONNES (NOVICE)


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Points : 32
    Points
    32
    Par défaut INSERT DONNES (NOVICE)
    Bonsoir,

    Quelqu'un serait-il me dire pourquoi je n'arrive pas à insérer le nom du jeux dans la table "JEUX" ? Je suis novice et je commence à apprendre. J'ai une base "TEST" avec une table "JEUX". Cette table comprend uniquement 2 champs qui sont l'identifiant qui lui est auto incrémenté et nom_jeux de type varchar.

    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
    <?php
    echo '<label for="nom_jeux">nom jeux :<label/> <input type="text" id="nomjeux" size="30"></input></br>'; 
    echo '<input type="button" value="ajouter" onclick="ajouter()"></input>'; 
    echo '<input type="reset" value="annuler"> </input></br>';
     
    function ajouter()
    {
    try
    	{
    		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    		$bdd = new PDO('mysql:host=localhost;dbname=TEST', 'root', '', $pdo_options);
    		$nomjeux = $_POST('nomjeux');
    		$reponse = "INSERT INTO JEUX VALUES ('', '$nomjeux');";
    		echo 'Le jeu a bien été ajouté !';
     
    		$reponse->closeCursor();
    	}
    catch(Exception $e)
    	{
    		die('Erreur : '.$e->getMessage());
    	}
    }	
    ?>
    Pour information, il ne se passe absolument rien !! aucun message d'erreur, ni validation
    Merci par avance,

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    tout simplement parce que onclick est un évènement javascript et que ta fonction en dessous est du PHP en plus c'est $_POST['nom_variable'].
    Développeur informatique contrarié...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Est il possible de le remplacer par un autre événement similaire ?

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par Ced39300
    Est il possible de le remplacer par un autre événement similaire ?
    Non, car ce n'est pas un problème d'évènement.

    Il faut vraiment comprendre qu'un site Web a une relation client/serveur très forte.
    Le serveur, ton hébergeur (Apache entre autre) à pour mission de réceptionner une demande (une requête HTTP d'un client) lors d'un clic sur un lien ou soumission d'un formulaire par exemple, puis traite la demande, et ensuite répond (renvoie un contenu vers le client).

    Les langages comme Html, Css, Javascript sont interprétés par un client (navigateur).
    Les langages comme Php, SQL sont interprétés par le serveur.


    Ce qui veut dire qu'un navigateur ne peut pas interpréter du code Php (c'est même absurde).
    On exploite Php pour générer par moment du code Html, Css, Javascript, mais c'est juste généré.


    Par ailleurs, il faudrait remplacer le "input type button" par un "input type submit" pour que la soumission du formulaire soit faite, et lui rajouter un nom.
    Et rajouter un nom aussi au input "nomjeux".
    Puis une balise BR ce fait comme ceci : <br />
    Un input comme ceci : <input ... />
    Un label : <label>Un label</label>, de même que le nom qu'on met dans l'attribut du "for" du label doit être identique à l'attribut "id" du input associé (comme nomjeux).
    Et pour finir, l'ensemble du contenu dans le formulaire doit selon la norme être compris dans un élément de type block, comme : <fieldset> ou <p> (par exemple).
    (/!\ attention aux erreurs de syntaxes )

    A la suite de ça, (lors du clic de ce bouton submit), une requête HTTP sera envoyée vers le serveur avec cette fois le contenu du formulaire.
    Et c'est là que ton serveur pourra traiter la demande, c'est à dire insérer dans la Bdd.

    En résumé, la fonction Php "ajouter" ne sert à rien.

    Exemple :
    Page insertion.php (avec quelques corrections)
    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
     
    <?php
    // Partie traitements
    if (isset($_POST['ajouter'], $_POST['nomjeux'])) {
        // On reçoit la demande d'insertion
       // Insertion/SQL
    }
    ?>
    <!-- Partie Html -->
    <html>
    ... etc ...
    <body>
     
        <form action="insertion.php" method="post">
            <fieldset>
                <label for="nomjeux">nom jeux :</label> <input type="text" name="nomjeux" id="nomjeux" size="30" /><br />
                <input type="submit" name="ajouter" value="Ajouter" />
                <input type="reset" value="annuler" />
            <fieldset>
        </form>
     
    </body>
    </html>
    Ici, le formulaire pointe sur la même page : insertion.php
    Ce qui veut dire que lorsqu'on soumet le formulaire, la même page sera demandée, à la différence que cette fois le contenu du formulaire sera renvoyée, d'où la présence de la condition sur "ajouter".


    Vois tu mieux comment les choses se déroulent ?
    Si ce n'est pas ainsi que tu veux faire, alors il faut expliquer comment tu souhaites le faire.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. SQL Server 2005 - ETL - Insertion données avec vérification.
    Par Mailgifson dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/12/2007, 12h22
  2. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  3. Réponses: 4
    Dernier message: 22/12/2005, 15h30
  4. Aide userform( insertion données dans classeur)
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 19/12/2005, 09h16
  5. probleme insertion donnée access
    Par nashouille dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/01/2004, 14h45

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