Bonjour à tous, je cherche a recenser tous les employés de mon entreprise, pour cela j'ai créé une base de donnée mysql pour me permettre de visualiser les informations de chaque employé sur une page web, en passant par php.
J'ai un fichier liste.php auquel je voudrai assigner plusieurs taches en fonction de l'url qui lui est associée. Je m'explique si l'url termine par /liste.php, je souhaite qu'il affiche toute la liste, sinon si l'url est le résultat d'une recherche par un formulaire et qu'elle se termine par /liste.php?nom=Dupont&prenom= je souhaite que la liste affiche tous ceux dont le nom est Dupont.
Pour se faire j'ai réalisé ce petit bout de 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<div id="struct">
	<h1>Liste des employés</h1>
	<p>
	<?php
		$db = mysql_connect('localhost','root');
		mysql_select_db('employes',$db);
 
		// on crée la requête SQL
		if ( $_GET['prenom'] != NULL ) { $prenom = $_GET['prenom']; }
		elseif ( $_GET['nom'] != NULL ) { $nom = $_GET['nom']; }
 
		if ( $prenom != NULL ) {
			if ( $nom != NULL ) { $sql = "SELECT * FROM employes WHERE prenom='$prenom' AND nom='$nom' ORDER by nom ASC"; }
			else { $sql = "SELECT * FROM employes WHERE prenom='$prenom' ORDER by nom ASC"; }
		}
		elseif ( $nom != NULL ) {
			if ( $prenom != NULL ) { $sql = "SELECT * FROM employes WHERE prenom='$prenom' AND nom='$nom' ORDER by nom ASC"; }
			else { $sql = "SELECT * FROM employes WHERE nom='$nom' ORDER by nom ASC"; }
		}
		else { $sql = "SELECT * FROM employes ORDER by nom ASC"; }
 
		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
		while($data = mysql_fetch_assoc($req))
		{
			// on affiche les informations de l'enregistrement en cours
			echo '<a href=employe.php?id=' .$data['id']. '>' .$data['nom'].' '.$data['prenom'].')</a><br />';
		}
 
		mysql_close();
		?> 
	</p>
</div>
cependant, cela ne marche qu'a moitié, en effet lorsque ?prenom=XXX&nom=YYY , le cela fonctionne, mais lorsqu'ils n'existent pas, j'obtiens:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Notice: Undefined index: prenom in \www\employes\liste.php on line 33
Notice: Undefined index: nom in \www\employes\liste.php on line 34
Notice: Undefined variable: prenom in \www\employes\liste.php on line 36
Notice: Undefined variable: nom in \www\employes\liste.php on line 40
Il semblerait que la détection de l'existence ou non de ?prenom=XXX&nom=YYY ne se fasse pas comme ci dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
		if ( $_GET['prenom'] != NULL ) { $prenom = $_GET['prenom']; }
		elseif ( $_GET['nom'] != NULL ) { $nom = $_GET['nom']; }
Quelqu'un aurait-il une idée?