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ération données checkbox


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut Récupération données checkbox
    Bonsoir à tous, j'ai un formulaire avec un checkbox qui me permet de déterminer si je veux créer un stage, un cours ou une conversation.

    Si je coche 'cours', j'affiche les données de mon formulaire dans la page qui a le même nom et donc pareil pour les 2 autres cases.

    J'ai crée une fonction pour délimiter les différentes valeurs de mon checkbox mais je me suis aperçu que si j'ai 3 formulaires remplis avec respectivement 'cours' puis 'stage' et enfin 'conversation', ma variable $cours[0] vaudra une valeur différente.

    Bref, ce que je voudrais, c'est assigné $cours[0] à 'cours', $cours[1] à 'stage' et $cours[2] à 'conversation' mais je ne vois pas comment faire.

    Voici le code de ma fonction:
    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
    82
    83
    84
    85
    86
    <?php
     
    include '../fonctions.php';
     
    function test($cours){
     
    	$mysqli = connexion_BDD('localhost', 'xxxx', 'xxxx', 'xxxx');
     
    	$sql = 'SELECT *
    		FROM Inscription
    		';
     
    	$result = $mysqli->query($sql);
     
    	if($cours == 0){
    		while($data = $result->fetch_array()){
     
    			$type = $data['Type'];
    			$list_type[] = explode(', ', $type);
     
    			foreach($list_type as $cours){
     
    				if ($cours[0]){
    					echo $data['lieu_formation'].'<br/>';
    					echo $data['Nom_organisation'].'<br/>';
    					echo $data['adresse_salle'].'<br/>';
    					echo $data['Tel'].'<br/>';
    					echo $data['email'].'<br/>';
    					echo $data['periodicite'].'<br/>';
    				}
     
    			}
    		}		
    	}
     
    	if($cours == 1){
    		while($data = $result->fetch_array()){
     
    			$type = $data['Type'];
    			$list_type[] = explode(', ', $type);
     
    			foreach($list_type as $cours){
     
    				if ($cours[1]){
    					echo $data['lieu_formation'].'<br/>';
    					echo $data['Nom_organisation'].'<br/>';
    					echo $data['adresse_salle'].'<br/>';
    					echo $data['Tel'].'<br/>';
    					echo $data['email'].'<br/>';
    					echo $data['periodicite'].'<br/>';
    				}
     
    			}
    		}		
    	}
     
    	if($cours == 2){
    		while($data = $result->fetch_array()){
     
    			$type = $data['Type'];
    			$list_type[] = explode(', ', $type);
     
    			foreach($list_type as $cours){
     
    				if ($cours[2]){
    					echo $data['lieu_formation'].'<br/>';
    					echo $data['Nom_organisation'].'<br/>';
    					echo $data['adresse_salle'].'<br/>';
    					echo $data['Tel'].'<br/>';
    					echo $data['email'].'<br/>';
    					echo $data['periodicite'].'<br/>';
    				}
     
    			}
    		}		
    	}
     
     
    	$result->close();
    	$mysqli->close();
    	print_r($cours[0]);	
     
    	return $cours;			
     
    }
    ?>
    Merci d'avance et bonne soirée.

  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
    Tes explications ne sont pas vraiment claires et malheureusement ton code est très confus aussi.

    A quoi correspond le $cours en argument de ta fonction test() ? et que contient la colonne Type ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Avatar de sourcilpower
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 124
    Points
    124
    Billets dans le blog
    2
    Par défaut
    bonjour,

    deja une chose me chagrine c'est que tu a nomé ta variable de parametre de fonction et celle de tes foreach avec le meme nom.

    Essai de corriger ca pour voir si cela resou quelque chose
    N'oublie pas le pouce vert

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Bonsoir, oui c'est difficile pour moi d'exprimer clairement ce que je veux à l'écrit. :/

    Tout d'abord l'argument $cours devait correspondre à un int représentant 'cours', stage' ou 'conversation'. Par exemple, avec test(0), je ne dois récupérer que le code qui correspond à la condition if($cours == 0)!
    Ensuite la colonne Type contient les valeurs des cases à cocher (cours/stage/conversation) sachant que dans une seule case, je peux avoir les 3 valeurs.


    Modifier le nom de l'argument n'avait rien changé.

    Merci.

    Cordialement.

  5. #5
    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
    Pour resumer, le code que tu nous montres doit lister les stages, cours ou conversation (un seul des 3).
    Sachant que le type de cours est stocké dans la colonne "type" qui contient plusieurs valeurs (par exemple "0,2" pour stage et conversion).
    C'est ça ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Oui exactement à part que la colonne "type" contient plutot les valeurs comme ceci: cours, stage, conversation.

    Merci

  7. #7
    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
    Pourquoi tu mets des chiffres comme argument de ta fonction si c'est une chaine de caractère qui est utilisée dans la colonne ?
    Ta fonction se resume donc à :
    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
    function test($cours){
     
    	$mysqli = connexion_BDD('localhost', 'xxxx', 'xxxx', 'xxxx');
     
    	$sql = 'SELECT * FROM Inscription WHERE type LIKE "%' . $cours . '%"';
     
     	$result = $mysqli->query($sql);
    	while($data = $result->fetch_array()){
     					echo $data['lieu_formation'].'<br/>';
    					echo $data['Nom_organisation'].'<br/>';
    					echo $data['adresse_salle'].'<br/>';
    					echo $data['Tel'].'<br/>';
    					echo $data['email'].'<br/>';
    					echo $data['periodicite'].'<br/>';
    	}		
    }
    Bon quand même je suis obligé de te dire que mettre des libellés séparés par une virgule dans une colonne d'une base de données relationnelles ce n'est pas idéal.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Bonjour, je mets des chiffres comme argument car je l'utilise comme si c'était un tableau, cela fonctionne seulement si les 3 cases sont cochées!

    Pour le 'LIKE', je dois admettre que ça change la vie, pas besoin de répéter 3 fois le même code avec des conditions différentes.

    Et pour le stockage multiple des valeurs dans une seule case, je ne vois pas comment faire autrement, à part créer une colonne pour chaque valeur.

    Merci en tout cas.

  9. #9
    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
    La structure relationnelle exacte serait d'avoir une table liant les types et les evenements :

    table type
    0 cours
    1 stage
    2 conversation

    tabkle evenement_type
    evenement_id type_id
    1 1
    1 2

    par exemple pour l’événement 1 étant de type stage et conversation
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Désolé mais je ne comprend pas à quoi me sert la table Événement. J'ai besoin de récupérer la valeur de mon checkbox et je ne vois pas en quoi cela m'aiderait avec la table Événement.
    De plus, je ne vois pas du tout à quoi me sert "id_evenement".

    Tu peux m'éclairer stp?

    Merci.

  11. #11
    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
    C'est une relation 1 <-> plusieur

    Ton "evenement" (ou je ne sais pas comment tu l'appelles) est lié à plusieurs "types".
    Il faut donc une table listant ces relations entre l’événement et les types.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Je crois avoir compris, j'ai juste à utiliser l’événement qui est la liste des types et si j'ai besoin du type en particulier, je récupère son id.

    C'est ça?

    EDIT: ça fonctionne parfaitement!

    Je mets le code final:

    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
    <?php
     
    include '../fonctions.php';
     
    function test($cours){
     
    	$mysqli = connexion_BDD('localhost', 'xxxx', 'xxxx', 'xxxx');
     
    	$sql = 'SELECT * FROM Inscription i
    			LEFT JOIN type_enseignement t ON i.id_type = t.id_type
    			LEFT JOIN evenement_type e ON t.id_type = e.id_type
    			WHERE type LIKE "%' . $cours . '%"';
     
     	$result = $mysqli->query($sql);
    	while($data = $result->fetch_array()){
     					echo $data['lieu_formation'].'<br/>';
    					echo $data['Nom_organisation'].'<br/>';
    					echo $data['adresse_salle'].'<br/>';
    					echo $data['Tel'].'<br/>';
    					echo $data['email'].'<br/>';
    					echo $data['periodicite'].'<br/>';
    	}
     
    	return $cours;
    }
     
    ?>
    Voilà, merci à tous.

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

Discussions similaires

  1. Récupération données bd et mettre dans checkbox
    Par pitite dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/05/2013, 13h31
  2. [MySQL] Récupération données d'un formulaire issues d'une requête et checkbox
    Par crg227 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/03/2013, 12h10
  3. Réponses: 0
    Dernier message: 21/05/2011, 09h54
  4. [MySQL] Récupération/Affichage de données checkbox
    Par nazoreen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/10/2008, 15h52
  5. pb récupération données checkbox
    Par maysa dans le forum Langage
    Réponses: 3
    Dernier message: 06/12/2006, 12h02

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