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 :

HTML checkbox - Récupération PHP - Requête SQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 20
    Points
    20
    Par défaut HTML checkbox - Récupération PHP - Requête SQL
    Bonjour à tous

    J'espère que le sujet n'a pas déjà été posé et que je me trouve au bon endroit

    Je vous explique tout.

    je suis bien loin d'être un génie absolu en développement mais c'est une demande de mon responsable et j'aimerais lui fournir quelque chose de correct et pas un script en dur où il faut modifier le code à la mano.

    J'ai donc un 1er fichier (formulaire HTML) qui demande à un utilisateur d'entrer un nom d'établissement. Une fois la manipulation effectuée l'utilisateur lance la requête SQL en cliquant sur un bouton qui l'envoie vers un nouveau fichier cette fois-ci PHP.

    Voici le résultat du fichier en question :

    Nom : fichier00.JPG
Affichages : 488
Taille : 134,1 Ko

    Mon problème se situe sur la partie inférieure. Une fois que l'utilisateur se trouve sur cette deuxième page, il faut qu'il entre quelques paramètres. Entre autre, l'ID de l'établissement mais aussi ce qu'il désire afficher (les cases à cocher).

    Une fois les choix réalisés, j'aimerais afficher toutes les machines ayant les spécifications sélectionnées précédemment.

    Voici le code de ma deuxième page:
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- Début code HTML -->
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=utf-8">
    		<title>
    			final
    		</title>
    	</head>
    	<body>
    		<form>
    			<!-- Bouton qui renvoie à la page 1 (page formulaire) -->
    			<input type="button" value="Home..." onclick="document.location='00-search_entite.html'">
    		</form>
    		<br>
    		<h3> - Partie Entité - </h3>
    		<!-- Début code PHP -->
    		<?php
    			// Récupération de la variable saisie par l'utilisateur, page 1.
    			$entite = $_POST['entite'];
    			// Affichage de la variable.
    			if(!$_POST['entite'])
    			{
    				echo "Aucune entité sélectionnée !";
    			}
    			else
    			{
    				echo "Vous avez saisi \"$entite\"";
    			}
    		?>
    		<!-- Fin code PHP -->
    		<!-- Début code HTML -->
    		<br>
    		<h3> - Partie Nom Operating System - </h3>
    		<h3> - Partie Nom Operating System - </h3>
    		<!-- Fin code HTML -->
    		<!-- Début code PHP -->
    		<?php
    			/*
    			// Passe les valeur dans la variable $osnamepc
    			$osnamepc = $_POST['osnamepc'];
    			// Affiche toutes les checkbox sélectionnées
    			print_r ($_POST['osnamepc']);
    			*/
    			foreach($_POST['osnamepc'] as $val_osnamepc)
    			{
    				echo "La checkbox $val_osnamepc a été cochée<br>";
    			}
    			if(!$_POST['osnamepc'])
    			{
    				echo "Aucune checkbox n'a été chochée !";
    			}
    		?>
    		<!-- Fin code PHP -->
    		<!-- Début code HTML -->
    		<br>
    		<h3> - Partie Nom Service Pack - </h3>
    		<!-- Fin code HTML -->
    		<!-- Début code PHP -->
    		<?php
    			/*
    			// Passe les valeur dans la variable $osspname
    			$osspname = $_POST['osspname'];
    			// Affiche toutes les checkbox sélectionnées
    			print_r ($_POST['osspname']);
    			*/
    			foreach($_POST['osspname'] as $val_osspname)
    			{
    				echo "La checkbox $val_osspname a été cochée<br>";
    			}
    			if(!$_POST['osspname'])
    			{
    				echo "Aucune checkbox n'a été chochée !";
    			}
    		?>
    		<!-- Fin code PHP -->
    		<!-- Début code HTML -->
    		<br>
    		<h3> - Partie Name Software - </h3>
    		<!-- Fin code HTML -->
    		<!-- Début code PHP -->
    		<?php
    			/*
    			// Passe les valeur dans la variable $sname
    			$sname = $_POST['sname'];
    			// Affiche toutes les checkbox sélectionnées
    			print_r ($_POST['sname']);
    			*/
    			foreach($_POST['sname'] as $val_sname)
    			{
    				echo "La checkbox $val_sname a été cochée<br>";
    			}
    			if(!$_POST['sname'])
    			{
    				echo "Aucune checkbox n'a été chochée !";
    			}
    		?>
    		<!-- Fin code PHP -->
    		<!-- Début code HTML -->
    		<br>
    		<h3> - Partie Requête SQL - </h3>
    		<!-- Fin code HTML -->
    		<!-- Début code PHP -->
    		<?php/*
    			// Paramètres de connexion au serveur et à la base MySQL.
    			$host="localhost";
    			$user="root";
    			$pwd="**********";
    			$bdd="glpidb";
    
    			// Connexion au serveur MySQL avec retour d'erreur le cas échéant (OR DIE).
    			$db=mysql_connect($host,$user,$pwd) or die ("Impossible de se connecter au serveur: ".$host);
    
    			// Connexion à la DataBase du serveur MySQL avec retour d'erreur le cas échéant (OR DIE).
    			mysql_select_db($bdd,$db) or die ("Impossible de se connecter à la base ".$bdd);
    
    			// Rédaction de la requête SQL.
    			$req_final = "	SELECT
    							FROM
    							WHERE
    							AND";
    		*/?>
    	</body>
    </html>
    <!-- Fin code HTML-->
    Voici ce que je suis capable de remonter pour le moment:

    Nom : fichier01.JPG
Affichages : 642
Taille : 83,3 Ko


    J'ai fouillé un peu partout sur internet mais étant une bonne, grosse et belle OUICHE LORRAINE en développement bah je ne m'en sort pas vraiment...

    S'il y avait parmi vous une âme charitable qui puisse me donner un coup de main je lui en serais éternellement reconnaissant

    Merci ^^

    Arn_no

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si j'ai bien compris, tu souhaites afficher sur la deuxième page le nom des machines qui ont été sélectionnées sur la première avec les cases à cocher ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par tomix Voir le message
    Salut,

    Si j'ai bien compris, tu souhaites afficher sur la deuxième page le nom des machines qui ont été sélectionnées sur la première avec les cases à cocher ?
    Bonjour Tomix ^^

    Pour commencer, merci à toi de me porter attention.

    Oui effectivement c'est l'idée

    L'utilisateur doit entrer un id à la main puis faire sa selection d'option(s) (cases à cocher. Une ou plusieurs biensûr) et cliquez sur "Envoyer" pour lancer la requête SQL et afficher le résultat.

    Mon problème, est que je n'arrive pas à mettre dans ma requête toutes les options selectionnées par l'utilisateur.
    Je sais comment les afficher par contre ^^ (cf. 2ème impression écran) mais pas très utile...

    Si tu as une idée jesuis preneur parce que là je tourne un peu en rond...

    Voilà mon code de ma requête SQL dans un code 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
     
    <?php
    $sql_final='SELECT g_c.name AS Nom_Host, g_c.id AS Id_Host, g_os.name AS Nom_OS, g_os.id AS Id_OS, g_ossp.name AS Nom_SP, g_ossp.id AS Id_SP, g_s.name AS Nom_Soft, g_s.id AS If_Soft
    FROM glpi_softwares g_s, glpi_softwareversions g_sv, glpi_computers_softwareversions g_csv, glpi_computers g_c, glpi_operatingsystems g_os, glpi_operatingsystemservicepacks g_ossp
    WHERE g_s.id=g_sv.softwares_id
    AND g_sv.id=g_csv.softwareversions_id
    AND g_csv.computers_id=g_c.id
    AND g_c.operatingsystems_id=g_os.id
    AND g_c.operatingsystemservicepacks_id=g_ossp.id
    AND g_c.entities_id LIKE "%'.$
    AND g_os.name LIKE "%'.$val_osname.'%"
    AND g_ossp.name LIKE "%'.$val_osspname.'%"
    AND g_s.name LIKE "%'.$val_sname.'%"
    ORDER BY g_c.name';
    ?>
    en intégrant ce code j'obtiens:

    Nom : fichier02.JPG
Affichages : 371
Taille : 92,1 Ko

    Ma base semble bien interrogée mais rien n'en ressort je me demande si les " (guillemets) ou un autre caractère ne devrait pas être protégé...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Finalement il semblerait que j'ai réussi à mettre les checkbox dans ma requête SQL. Mais j'ai tellement réussi que la recherche est faire sur l'ensemble des checkbox .... Qu'elles soient cochées ou non

    Du coup pour une simple requête faite sur une entité qui ne compte que 11 postes il me sort que la requête à 1713 résulstats (cf. impression écran) !

    Pas tout à fait faux mais pas tout à fait juste non plus ^^

    Nom : fichier03.JPG
Affichages : 393
Taille : 170,2 Ko

    le résultat n'aurait du être que les poste dont le nom de l'OS contient "7" (pour windows 7). Soit 11 "lignes" comme mon entité ne contient que 11 machines toutes sous Win7...

    Du coup ma question est maintenant comment faire, pour ne prendre en compte dans ma requête uniquement que les checkbox cochées ?

    Merci à la personne qui m'aidera ^^

Discussions similaires

  1. Une checkbox et plusieurs requétes SQL.
    Par dayou05 dans le forum Langage
    Réponses: 7
    Dernier message: 28/12/2014, 11h02
  2. [AC-2003] Récupération résultats requête SQL dans VBA
    Par rberniga dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 19/08/2009, 12h28
  3. [MySQL] Balise HTML <a href=".. avec requête SQL en lien ?
    Par mauriiice dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/05/2009, 17h17
  4. Créer un tableau html à partir d'une requête sql
    Par biba35 dans le forum Langage
    Réponses: 5
    Dernier message: 05/02/2009, 10h14
  5. Créer un tableau html à partir d'une requête sql
    Par biba35 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/02/2009, 11h17

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