Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de récupération de données

Sujet résolu
    22 septembre 2017 à 17:43:54

    Bonjour je viens quérir un peu d'aide.

    Je suis un grand débutant en php, je débute sur mon premier petit projet (et je bute dessus aussi).

    Je veux créer un tableaux de disponibilités où plusieurs utilisateurs peuvent cocher des checkbox afin de préciser si ils sont dispos ou non.

    Je me torture la tête depuis le début de l'après midi et après avoir résolus plusieurs problème je coince sur celui-ci : je n'arrive pas à récupérer les données de mes checkbox pour les mettre dans ma bdd, si quelqu'un saurait me dire ce que j'ai fait de mal ce serait d'une grande aide !

    Merci beaucoup d'avance !

    <?php 
        //déclaration de bdd
        $database = new PDO('mysql:host=db;dbname=dispos','root','******') ;
    
    
    //méthode pour récupérer les données des checkbox
    if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        
        for ($i = 0; $i < 31; $i++) {
            for ($j = 0; $j < 3; $j++){
                
                if (isset($_POST['checkbox'.$j]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"0")') ;
                }
        
                   if (isset($_POST['checkbox'.$j+3]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"1")') ; 
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"0")') ;   
                }
                
                      if (isset($_POST['checkbox'.$j+6]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"0")') ;   
                }
                
                      if (isset($_POST['checkbox'.$j+9]) ){
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"1")') ;
                }
                else {
                    $database -> query ('INSERT INTO dispo (id_personne, id_moment, jour, coche) VALUES ("1",$j,$i,"0")') ;   
                }
                
            }
        
        }
    }
        
            
    
            
            
    
    // -- Pour les colonnes avc le nom de tes potos
    $gens = array('Julien', 'Ludo', 'Seb', 'Nico');
    
    
    
    
    
    
    // -- les différentes plages horaires
    $plagesHoraire = array('Matin', 'Aprèm', 'Nuit');
    
    // -- On en déduit le nombre de fois qu'il faudra itérer sur chaque ligne
    $nbGens = count($gens);
    $nbPlagesHoraires = count($plagesHoraire);
    $nbIterations = $nbGens * $nbPlagesHoraires;
    ?>
    <!DOCTYPE html>
    <html>
    
    <head>
     
        <link rel="stylesheet" href="style.css"/>
        <meta charset="UTF-8">
        <title> Disponibilités </title>
        
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    
    </head>
    
    <body>
    
    <form id="dispo_form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" role="form">
    
        <caption>Disponibilités pour Octobre 2017</caption>
    
        <div>
            <!-- Nom des gens -->
            <div class=cellule></div>
            <?php foreach ($gens as $cleytus) { ?>
                <div class="cellule_personne"><?php echo $cleytus; ?></div>
            <?php } ?>
        </div>
    
        <!-- Plages horaires : HEAD -->
        <div id="first">
            <div class="first">Date</div>
            <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                <div class="cellule_moment" class="first<?php echo $i+1; ?>">
                    <?php echo $plagesHoraire[$i % $nbPlagesHoraires]; ?>
                </div>
            <?php } ?>
        </div>
        
        <!-- Plages horaires : BODY -->
        <?php for ($jour = 1; $jour <= 31; $jour++) { ?>
            <div id="line<?php echo $jour; ?>">
                <div class="date"><?php echo $jour; ?></div>
    
                <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                    <div class="cellule cellule<?php echo $i+1; ?>">
                        <input class="checkbox<?php echo $i+1; ?>" type="checkbox" name="checkbox <?php echo $jour. $i ?>" />
                    </div>
                <?php } ?>
        </div>
    
        
        <?php } ?>
    
                    <div>
                        <div class="cellule" id="allbox">Tout cocher</div>
                        <?php for ($i = 0; $i < $nbIterations; $i++) { ?>
                        <div class="footer cellule<?php echo $i+1; ?>">
                        <input class="all<?php echo $i+1; ?>" type="checkbox">
                    </div>    
            <?php } ?>
    
            <div>
            <div class="valider"><input id ="valider" type="submit" value="Valider"></div>
                        </div></div>
    
    
    
    
    
    </form>
    <script src="javascript.js"></script>
    </body>
    
    </html>

    Et un petit apperçu visuel du projet 

    EDIT : Bon j'ai trouvé le problème pour ceux qui un jour aurait le même problème, la syntaxe pour insérer une variable dans une requête SQL c'est :

    (" ' .$lavariable. ' " )

    -
    Edité par JulienMantovani 22 septembre 2017 à 21:46:55

    • Partager sur Facebook
    • Partager sur Twitter

    Problème de récupération de données

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown