Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2011, 22h55   #1
Membre à l'essai
 
Inscription : juin 2010
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 30
Points : 20
Points : 20
Par défaut lancer une requête à partir d'une checkbox

Je cherche à afficher des résultats en fonction de checkbox cochées

Je génère, d'une part, dans un fichier PHP, une liste de checkbox basée sur les valeurs de champs d'une table.
La base s'appelle "test", la table "results", et je bâtis la liste de checkbox à partir du champs "vehicle_id".
Il y a actuellement 5 champs dans ma table:
id
type_of_vehicle
vehicle_id
type_of_statistics
path.

Par exemple
1 Aircraft DA40 stats_1 path_to_find_stats_1

Je désire quand on coche sur un "vehicle_id" renvoyer à une page (ou mieux faire figurer sur la même page) les type_of_statistics et le path.
Mon problème, c'est qu'actuellement, je ne fais apparaître tous les résultats; or j'aimerais ne sélectionner que les résultats cochés, et je n'ai pas de message d'erreurs par ailleurs



Ci joint mon code PHP


Code :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
      <!-- Encodage en utf-8 -->
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <!-- Encodage en iso-8859-1 -->
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Checkbox</title>
</head>
 
<body>
 
	<legend>Programmes</legend>
 
		<p id="vehicle" >	
				<?php		
 
					echo '<form name="checkbox" method="post" action="results_display.php">';
 
					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
					$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
 
					# permet de n'afficher que les valeurs distinctes cad éviter de répète le nom du véhicule autant de fois qu'il y a de stats
					$reponse = $bdd->query('SELECT DISTINCT vehicle_id FROM results');
 
					if ($reponse){	
						while ($donnees = $reponse -> fetch(PDO::FETCH_ASSOC)){
						# on doit échapper avec \ à chaque fois que l'on rencontre les doubles guillemets "
							echo "<label><input type=\"checkbox\" name =\"id[]\" value = \"". $donnees["vehicle_id"] . "\">" . $donnees["vehicle_id"] . "</label>";
						}
 
						 echo '<input type="submit"/> <input type="reset"/>';
						$reponse->closeCursor();
					}
 
					echo "</form>";
				?>				
	</form>
</body>





Code :
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
 
<?php
 print_r ($_POST);
 echo "<br />";
 
if(isset($_POST['id'])){
 
	try{
 
		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
		$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);    
		$reponse = $bdd->query('SELECT vehicle_id, path, type_of_statistics FROM results WHERE vehicle_id IN ('.implode(',', array_map('intval', $_POST['id'])).')');
 
		while ($donnees = $reponse -> fetch(PDO::FETCH_ASSOC)){
			echo $donnees["vehicle_id"] . "<br />";
			echo "<a href = \"" . $donnees["path"] . "\">" . $donnees["type_of_statistics"] . "</a> <br />";	
		}
 
		$reponse->closeCursor();	
	}
	catch(Exception $e){
		die('Erreur : '.$e->getMessage());
	}
}
 else
  echo 'Aucune ID séléctionné.';
 
?>
steph_arrow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 22h59   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Affiche et controle ta requête.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h04.


 
 
 
 
Partenaires

Hébergement Web