Inséré dans une base de donnée

Ce topic a été résolu
Florian

Florian Le 17 avril 2016 à 18:01 (Édité le 25 janvier 2019 à 17:50)

Hello,

J'ai un problème, je veux faire un système de permission mais je suis bloquer a un endroit, c'est d'insérer la permission dans la BDD voici les colonnes



Donc je vous explique, quand on rentre une permission, elle est enregistre dans list_perm et une colonne se créé dans Grade, jusqu'ici tout va bien, mais quand je veux update Grade, je galère royalement, voici mon code

      <div class="grid-1">
           <div class="title-grid"><?= $page ?></div>
           <div class="content-gird">
           <div class="form">
              <?php 
              if (isset($_POST['delete'])){
                 //delete du grade
           }
           if(isset($_POST['send'])){
              //On doit update mais impossible
           }
         $req = $bdd -> query("SELECT * FROM list_perm");
         while ($r = $req -> fetch(PDO::FETCH_ASSOC))
         {
            $nom = $r['nom'];
         ?>
         <form method="post" id="customForm">
               <div class="elem">
                        <label class="left">Permission: <?= $nom ?></label>
                        <div class="indent distance">
               <p><input type="radio" name="<?= $nom ?>" value="1" class="styled"/> <label>Oui</label></p>
               <p><input type="radio" name="<?= $nom ?>" value="0" class="styled" checked="checked"/> <label>Non</label></p>
               
                        </div>
                 </div>
                 <?php  } ?>
                <div class="elem" id="customForm">
                   <div class="elem">
                  <input id="send" name="send" type="submit" class="button-a gray" value="Send" /> 
                    
                  <button class="button-a dark-blue" type="submit" name="delete">Supprimer le grade</button>  
              </div>
          </div>
                 </form>
                 <div class="clear"> </div>
             </div>
         </div>
     </div>
Donc ou est le problème ? J'ai mis tout mes résultat dans un tableau ça ressort comme ça 
Array ( [frefr] => 0 ) Array ( [test] => 0 ) Array ( [test1] => 0 )
Donc jusqu'ici tout va bien mais lors du update je met frefr, test, test1, est a cause de la virgule derrière  test1 l'update se fait pas, donc j'ai essayer le substr mais soit ça enleve toutes les virgules soit ça fait rien :x
PrimFX

PrimFX Le 18 avril 2016 à 18:24

Salut ! Je suis désolé mais il va falloir être plus précis dans les informations que tu nous donnes... 😰

quand on rentre une permission, elle est enregistre dans list_perm et une colonne se créé dans Grade
Sur ton screen, quelle table est "list_perm" et laquelle est "Grade" ? La table "list_perm" te permet simplement de faire un listing des dernières modifications de permissions ou elle est aussi censée être liée aux membres ? Et la table "Grade" doit être liée aux membres elle aussi je suppose ? 😋

J'ai mis tout mes résultat dans un tableau ça ressort comme ça  
De quels résultats parles-tu ? De ce d'une requête sur ta base de donnée ? Du formulaire que tu envoies ?

Bref, un peu plus de précisions sur ce que tu fais dans ton code ainsi que la structure de ta base de données ne serait pas de refus pour pouvoir t'aider 😉
Florian

Florian Le 18 avril 2016 à 19:35 (Édité le 19 avril 2016 à 02:41)

C'est ça List_perm permet de lister toutes les perms et de savoir qui l'a mis pour avoir un pti suivis

Ensuite pour le grade oui, c'est en rapport avec la tables users qui va recup la colonne Nombre pour voir a qu'elle grade il appartient, jusqu'ici tout va bien, mais c'est pour ajouter les perms

Quand je veux mettre des perms a un grade 



Donc quand je veux update j'ai ça frefr, test, test1, mais c'est la virgule après le dernier grade, et c'est ça qui me bloque, donc j'ai essaye avec un pti substr mais ça enleve toutes les virgules, je t'envoie le code PHP

ATTENTION très moche car je savais pas par ou passer :x j'essayerais d'optimiser quand ça sera fini x)

     <?php
      if(isset($_POST['send'])){
         $req = $bdd -> query("SELECT * FROM list_perm");
         while ($r = $req -> fetch(PDO::FETCH_ASSOC))
         {
            $update = $r['nom'].', ';
            $execute = $_POST[$r['nom']].', <br />';
            echo $update.'<br />'.$execute;
         $SQL = $bdd -> prepare("UPDATE grade SET '.$update.' WHERE ID = ?");
         $SQL -> execute(array($execute $id));
           }
        }
?>

Après être passer par un fetchall et un foreach toujours rien 😭
Florian

Florian Le 19 avril 2016 à 15:19

Hop voici le résultat ça fonctionne 😉
foreach($r as $row) {
    $names[] = $row['nom'];
}
$names = implode(',', $names);
echo $names;
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte