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

Langage PHP Discussion :

Récupérer valeur en base et case a cocher


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Récupérer valeur en base et case a cocher
    Bonjour,

    Dans une partie de mon formulaire, je souhaite générer une liste de cases à cocher qui permet de sélectionner des équipes qui sont dans ma base donnée.

    Dans ma vue, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reponse_chekbox = test_chekbox();		//Fonction qui recupère les equipes en base
    foreach ($reponse_chekbox as $current)
    // var_export($current);
    echo '<input type="checkbox">'.$reponse = implode(',', $current).'<br>';
    Et dans mon controlers j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function test_chekbox()  				
    {
    	$bdd = connectbdd(); 
    	$sql=	'SELECT distinct ID_Equipe, Nom_Equipe FROM EQUIPES;';
    	$reponse_test_chekbox  = $bdd->query($sql);
    	unset($bdd); 							
    	return $reponse_test_chekbox ;
    }
    Quand je regarde le résultat, il me sort :

    ☐ 36,36,EQ1,EQ1
    ☐ 37,37,EQ2,EQ2
    ☐ 38,38,EQ3,EQ3
    ☐ 39,39,EQ4,EQ4
    etc ...

    Pourquoi me sort-il les informations en double ?

    D'avance merci
    PS: Je sais que mes checkbox n'on pas de value, c'est pour tester dans un premier temps la génération de mes équipes de manière dynamique.

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    As-tu fais le debugage minimum ?
    - Contrôler ce que retourne ta requête
    - Contrôler ce que vaut $current
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    J'apprend encore le PHP,
    Mais j'ai utilisé ceci : var_export($current);
    Et pour chaque équipes, ça me retourne un résultat de ce type:

    array ( 'ID_Equipe' => '36', 0 => '36', 'Nom_Equipe' => 'EQ1', 1 => 'EQ1', )
    array ( 'ID_Equipe' => '37', 0 => '37', 'Nom_Equipe' => 'EQ2', 1 => 'EQ2', )
    array ( 'ID_Equipe' => '38', 0 => '38', 'Nom_Equipe' => 'EQ3', 1 => 'EQ3', )


    Peut-être que ça peux vous aider ? On vois viens les doublons au niveau des nom et des ID. bizare

    Es-ce que je peux tester d'autres choses ?

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'est pas anormal de recevoir un index associatif et un index numérique, c'est le comportement de fetch par défaut.

    En dehors de ça je pense qu'il faut revoir ton code de toute façon : ta fonction n'apporte rien et ce n'est pas une bonne idée d'ouvrir et fermer une connexion bdd dés que tu as un besoin.
    Utiliser implode() pour concatener deux termes c'est un peu excessif (et tu te debarasses du problème de doublon sans avoir besoin de changer le mode de fetch).
    Tu n'as pas besoin de DISTINCT dans ta requête : ta table equipes ne devrait pas contenir de doublons.

    Du coup ton code deviendrait simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // au début de ton code 
    $bdd = connectbdd(); 
    .....
    .....
    .....
     
    $sql = 'SELECT ID_Equipe, Nom_Equipe FROM EQUIPES;';
    foreach ($bdd->query($sql) as $row) {
                 echo '<input type="checkbox">'. $row['ID_Equipe'] . ',' . $row['Nom_Equipe'] . '<br>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Exacte, j'ai revus tout ça et c'est fonctionnel

    voici mon code :
    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
     
    $liste_equipes = liste_equipes();		// recupe user en base
    foreach ($liste_equipes as $equipe) 
    {	
    	$id_equipe = $equipe['ID_Equipe'];
     
    	$liste_users_equipe = liste_users($id_equipe); //recupe liste user de l'equipe en cours
     
    	echo '<h7 id='.$equipe['ID_Equipe'].' " onClick="show_hidden_users_equipe('.$equipe['ID_Equipe'].');">'.$equipe['Nom_Equipe'].'</h7><br>';
    	echo '<div id=div_'.$equipe['ID_Equipe'].' style="display:none;">';
    	foreach ($liste_users_equipe as $user) 
    	{
    		//Checkbox des users de l'equipe
    		echo '<input type="checkbox" id='.$user['ID_User'].' value='.$user['ID_User'].'"><label for="'.$user['ID_User'].'">'.$user['Nom'].' '.$user['Prenom'].' '.$user['PerID'].'</label><br>';
    	}
    	echo '</div>';
    Du coup un collègue m'a modifié ma requête et repris une existante qu'il m'a modifié aussi pour qu'elle soit utilisée par d'autres fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function liste_equipes()
    {
    	$bdd = connectbdd(); 		//Connexion a la base a l'appel de la fonction
    	$reponse_liste_equipes = $bdd->query('SELECT * FROM EQUIPES WHERE EQUIPE_ACTIF = 1;'); // $reponse_liste_equipes c'est le nom du tableau qui est generé par la requête SQL
     
    	unset($bdd); 				// Vide la variable pour se deco de la BDD
    	return $reponse_liste_equipes;
    }

    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
     
    function liste_users($id_equipe = '') //" = ' ' " -> parametre facultatif 
    {
    	$bdd = connectbdd(); 		//Connexion a la base a l'appel de la fonction
     
    								// On récupère tout le contenu de la table USERS
    	$requete = 'SELECT * 
    			FROM organisations ,users, equipes
    			where users.id_user = organisations.USERS_ID_User
    			AND equipes.id_equipe = organisations.equipes_id_equipe';
    	if($id_equipe != '')
    	{
    		$requete .= ' AND equipes.id_equipe = '.$id_equipe;
    	}					
    	$requete .= ' ORDER BY ID_User desc';		// plus recent en tête de liste					
     
    	$reponse = $bdd->query($requete);  // where $get de la valeur pour recherche une liste de personnes
     
     // $reponse c'est le nom du tableau qui est generé par la requête SQL
     
    	unset($bdd); 				// Vide la variable pour se deco de la BDD
    	return $reponse;
    }
    Du coup en titre h7 j'ai bien mes listes d’équipes et quand je clic dessus, j'ai mes user en bases qui apparaissent

    voualou ^^

    Merci à toi pour les conseilles

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Du coup en titre h7 j'ai bien mes listes d’équipes
    Mais ça n'existe pas les titres h7...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Mais ça n'existe pas les titres h7...
    Exacte, j'ai mis une grosse valeur pour être sure qu'il ne soit pas trop gros ... mais oui exact je vais modifier ça.
    c'etait pour combler un problème de CSS

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

Discussions similaires

  1. récupérer valeur dans base de donnée SQL
    Par Ullrik dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/05/2010, 08h23
  2. Récupérer valeur case à cocher
    Par pikmin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/04/2009, 16h55
  3. Récupérer valeurs de deux case à cocher en tableau
    Par christgh dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2008, 08h25
  4. Récupérer valeurs d'une liste de cases à cocher
    Par jminguely dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2008, 22h10
  5. Réponses: 3
    Dernier message: 23/01/2008, 10h31

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