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 dans la base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Par défaut Insertion dans la base de données
    bonjour,


    j'ai 2 pages PHP : liste_dirigeants.php (dans laquelle on retrouve un tableau récapitulatif des entrées dans la BDD) et rediger_dirigeants.php (pour entrer des infos dans la BDD).

    Il n'y a rien qui entre dans la BDD lorsqu'on rempli les chmaps de rediger_dirigeants (aucun message d'erreur concernant la connection à la BDD, en cliquant sur "envoyer" on retourne bien sur liste_dirigeants mais rien n'est entré dans la base).

    j'ai donc fait une insertion manuelle directement dans phpmyadmin et mes entrées apparaissent bien dans liste_dirigeants.php
    voici mon code :

    REDIGER_DIRIGEANTS.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
    <?php 
    				mysql_connect("secret", "secret", "secret");
    				mysql_select_db("secret");
     
    if (isset($_GET['modifier_dirigeants'])) // Si on demande de modifier une entrée
    {
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM dirigeants WHERE id=' . $_GET['modifier_dirigeants']);
        $donnees = mysql_fetch_array($retour);
     
        // On place le titre et le contenu dans des variables simples
        $date = stripslashes($donnees['date']);
        $heure = stripslashes($donnees['heure']);
    	$match = stripslashes($donnees['match']);
    	$responsable = stripslashes($donnees['responsable']);
    	$feuille = stripslashes($donnees['feuille']);
    	$score = stripslashes($donnees['score']);
    	$arbitre = stripslashes($donnees['arbitre']);
    	$buvette = stripslashes($donnees['buvette']);
        $id_dirigeants = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rédige une nouvelle dirigeants
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle dirigeants
        $date = '';
        $heure = '';
    	$match = '';
    	$responsable = '';
    	$feuille = '';
    	$score = '';
    	$arbitre = '';
    	$buvette = '';
        $id_dirigeants = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
     
    <form action="liste_dirigeants.php" method="post">
    <p>Date : <input type="date" size="30" name="titre" value="<?php echo $date; ?>" /></p>
    <p>Heure : <input type="time" size="30" name="heure" value="<?php echo $heure; ?>" /></p>
    <p>Match : <input type="text" size="30" name="match" value="<?php echo $match; ?>" /></p>
    <p>Responsable de salle : <input type="text" size="30" name="responsable" value="<?php echo $responsable; ?>" /></p>
    <p>Feuille de marque : <input type="text" size="30" name="feuille" value="<?php echo $feuille; ?>" /></p>
    <p>Tableau des scores : <input type="text" size="30" name="score" value="<?php echo $score; ?>" /></p>
    <p>Arbitre : <input type="text" size="30" name="arbitre" value="<?php echo $arbitre; ?>" /></p>
    <p>Buvette : <input type="text" size="30" name="buvette" value="<?php echo $buvette; ?>" /></p>
    <br />
     
        <input type="hidden" name="id_dirigeants" value="<?php echo $id_dirigeants; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    et liste_dirigeants.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
    80
    81
    <?php 
    				mysql_connect("secret", "secret", "secret");
    				mysql_select_db("secret"); 
     
     
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une dirigeants ?
    //-----------------------------------------------------
     
    if (isset($_POST['date']) AND isset($_POST['heure']) AND isset($_POST['match']) AND isset($_POST['responsable']) AND isset($_POST['feuille']) AND isset($_POST['score']) AND isset($_POST['arbitre']) AND isset($_POST['buvette']))
    {
         $date = stripslashes($donnees['date']);
        $heure = stripslashes($donnees['heure']);
    	$match = stripslashes($donnees['match']);
    	$responsable = stripslashes($donnees['responsable']);
    	$feuille = stripslashes($donnees['feuille']);
    	$score = stripslashes($donnees['score']);
    	$arbitre = stripslashes($donnees['arbitre']);
    	$buvette = stripslashes($donnees['buvette']);
        // On vérifie si c'est une modification de dirigeants ou pas
        if ($_POST['id_dirigeants'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO dirigeants VALUES('', '" . $date . "', '" . $heure . "', '" . $match . "', '" . $responsable . "', '" . $feuille . "', '" . $score . "', '" . $arbitre . "', '" . $buvette . "')");
        }
        else
        {
            // C'est une modification, on met juste à jour le titre et le contenu
            mysql_query("UPDATE dirigeants SET date='" . $date . "', heure='" . $heure . "', match='" . $match . "', responsable='" . $responsable . "', feuille='" . $feuille . "', score='" . $score . "', arbitre='" . $arbitre . "', buvette='" . $buvette . "' WHERE id=" . $_POST['id_dirigeants']);
        }
    }
     
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une dirigeants ?
    //--------------------------------------------------------
     
    if (isset($_GET['supprimer_dirigeants'])) // Si on demande de supprimer une dirigeants
    {
        // Alors on supprime la dirigeants correspondante
        mysql_query('DELETE FROM dirigeants WHERE id=' . $_GET['supprimer_dirigeants']);
    }
    ?>
     
    <table><tr>
     
    <th>Date</th>
    <th>Heure</th>
    <th>Match</th>
    <th>Responsable de salle</th>
    <th>Feuille de match</th>
    <th>Tableau score</th>
    <th>Arbitre</th>
    <th>Buvette</th>
    <th>Je m'inscris</th>
    <th>Supprimer</th>
    </tr>
     
    <?php
    $retour = mysql_query('SELECT * FROM dirigeants ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les dirigeants
    {
    ?>
     
    <tr>
     
    <td><?php echo stripslashes($donnees['date']); ?></td>
    <td><?php echo stripslashes($donnees['heure']); ?></td>
    <td><?php echo stripslashes($donnees['match']); ?></td>
    <td><?php echo stripslashes($donnees['responsable']); ?></td>
    <td><?php echo stripslashes($donnees['feuille']); ?></td>
    <td><?php echo stripslashes($donnees['score']); ?></td>
    <td><?php echo stripslashes($donnees['arbitre']); ?></td>
    <td><?php echo stripslashes($donnees['buvette']); ?></td>
    <td><?php echo '<a href="rediger_dirigeants.php?modifier_dirigeants=' . $donnees['id'] . '">'; ?>Insciption</a></td>
    <td><?php echo '<a href="liste_dirigeants.php?supprimer_dirigeants=' . $donnees['id'] . '">'; ?>Suppression (réservé max)</a></td>
    </tr>
     
    <?php
    } // Fin de la boucle qui liste les dirigeants
    ?>
    voila, moi perso j'ai un doute sur les isset dans le 2eme code...

  2. #2
    Membre expérimenté
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Par défaut
    Je pense que tu as inversé les deux codes.
    Si tu met un echo 'test insertion'; juste au dessus ton INSERT INTO, ça l'affiche ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Par défaut
    Citation Envoyé par (Benoit) Voir le message
    Je pense que tu as inversé les deux codes.
    Si tu met un echo 'test insertion'; juste au dessus ton INSERT INTO, ça l'affiche ?
    non ça l'affiche pas.
    par contre dans le code rediger_dirigeants.php j'ai remplacé les stripslashes par des addslashes c'est tout.

    je pense pas avoir inversé les codes.
    liste_dirigeants doit à la fois insérer dans le BDD et afficher ce que contient la BDD

  4. #4
    Membre expérimenté
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Par défaut
    Hé bien voilà, la cause est trouvée, non ?
    Ca rendre pas dans le IF.
    Donc, faut examiner la valeur de tes variables POST pour voir laquelle ne vérifie pas les conditions du IF.
    Tu peux donc faire un dump de ton tableau $_POST avec echo var_dump($_POST);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 28
    Par défaut
    voici les résultats du dump :

    array(9) { ["titre"]=> string(10) "21/03/2009" ["heure"]=> string(5) "14h00" ["match"]=> string(14) "Poussins-Crépy" ["responsable"]=> string(0) "" ["feuille"]=> string(0) "" ["score"]=> string(0) "" ["arbitre"]=> string(0) "" ["buvette"]=> string(0) "" ["id_dirigeants"]=> string(1) "0" }


    j'ai donc changé dans rediger_news le 1er élément "titre" en "date" pour que ça corresponde à mes données.
    maintenant, lorsque je remplis le formulaire, une ligne est créée dans ma BDD mais seul l'ID est pris en compte ! les informations n'apparaissent nulle part.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Par défaut
    Bonjour,

    Juste un petit conseil quand tu fais des INSERT.


    Spécifier les colonnes d'insertion, par exemple:

    INSERT INTO toto (a,b,c) VALUES ('x','y',z)

    Pourquoi ?

    Parce que l'ordre des colonnes n'est pas forcement l'ordre dans lequel tu as ajouter tes colonnes, colonnes optionnelles, ou si tu as fait une restauration de ta base, il se peut que tu les récupère dans un autre ordre, ceci dépend surtout du SGBD. Donc pour être sur et certain de ce que tu fais il est préférable de les spécifié dans ta requête.

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

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. [paradox7] Problème d'insertion dans la base de données
    Par mouna201 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/02/2006, 09h47
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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