Page 1 sur 2
Modification tableau apres recherche
Posté : 04 déc. 2012, 20:54
par Pierre_06
Bonsoir à tous,
lorsque j'arrive sur ma page index.php je souhaiterais visualiser un tableau avec tous les membres de ma table Personnel.
Sur cette même page il y a un formulaire pour rechercher quelqu'un, donc lorque je recherche quelqu'un mon tableau initial se modifie.
J'ai fait des conditions if, elseif pour savoir ce que l'utilisateur renseignait comme champ du formulaire mais à mon arrivée sur ma page, j'ai un nombre incroyable d'erreur. Ex :
Notice: Undefined index: nom in C:\Program Files\EasyPHP-12.1\www\my portable files\index.php on line 146
De plus je ne visualise qu'une personne de ma table.
Si vous avez des suggestions.
Merci
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 20:59
par squallblanc
Tu a un bout de code à nous montrer ça serai plus simple pour comprendre ce qu'il ne va pas.
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:13
par Pierre_06
if ($_POST['nom']=="defaut" && $_POST['uni']=="defaut" && $_POST['bat']=="defaut" && $_POST['fct']=="defaut" && $_POST['pol']=="defaut") {
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('annuaire',$db);
// on crée la requête SQL
$sql = 'SELECT identifiant,nom,prenom,civilité,fonction,unite,unite2,batiment,batiment2,pole,pole2 FROM personnel ORDER BY nom' ;
}
else if ($_POST['nom']=="defaut" && $_POST['uni']=="defaut" && $_POST['bat']=="defaut" && $_POST['fct']=="defaut" && $_POST['pol']!="defaut") {
$pol = $_POST['pol'];
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('annuaire',$db);
// on crée la requête SQL
$sql = "SELECT identifiant,nom,prenom,civilité,fonction,unite,unite2,batiment,batiment2,pole,pole2 FROM personnel WHERE pole='".$pol."' UNION SELECT identifiant,nom,prenom,civilité,fonction,unite,unite2,batiment,batiment2,pole,pole2 FROM personnel WHERE pole2='".$pol."' ORDER BY nom" ;
}
.
.
.
.
Je fais des else if pour vérifier les 5 champs et donc toutes les possibilités et je rajoute un else pour afficher mon tableau lorsque j'arrive pour la premiere fois sur la page :
else {
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('annuaire',$db);
$sql = 'SELECT identifiant,nom,prenom,civilité,fonction,unite,unite2,batiment,batiment2,pole,pole2 FROM personnel ORDER BY nom' ;
}
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:22
par squallblanc
utilise la balise PHP pour que ton code soit coloré.
Sinon j'ai oublier tu peu me donner la ligne 146 qui va pas?
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:30
par Pierre_06
voilà la ligne 146 :
if ($_POST['nom']=="defaut" && $_POST['uni']=="defaut" && $_POST['bat']=="defaut" && $_POST['fct']=="defaut" && $_POST['pol']=="defaut")
Mais c'est pas vraiment qu'elle ne va pas, c'est ( je pense ) parce qu'aucune recherche n'a été lancée la premiere fois donc les variables sont "inconnues".
Par contre dès que j'appuie sur rechercher, qui lance une recherche "par défaut" ( car on ne modifie pas le nom, ni l'unité...) , elle va afficher toute la table, et là il n'y a plus aucune erreur.
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:35
par squallblanc
essai en faisant :
if (isset($_POST['nom']=="defaut" && $_POST['uni']=="defaut" && $_POST['bat']=="defaut" && $_POST['fct']=="defaut" && $_POST['pol']=="defaut"))
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:37
par xTG
Avant d'utiliser une variable il faut tester son existence :
if( isSet($_POST['nom']) && $_POST['nom'] == 'test' )
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:39
par squallblanc
exact j'ai pas percuté sur le test avec isset
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:44
par Pierre_06
Avant d'utiliser une variable il faut tester son existence :
if( isSet($_POST['nom']) && $_POST['nom'] == 'test' )
Je suis d'accord mais la première fois, je ne n'execute aucune requete ayant besoin du nom... vu que je n'ai pas rempli le formulaire de recherche.
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:54
par squallblanc
Tu peu afficher le code html du formulaire pour la 1ere recherche.
Re: Modification tableau apres recherche
Posté : 04 déc. 2012, 21:56
par Pierre_06
Formulaire assez banal, l'utilisateur devra faire son choix de recherche avec des listes déroulantes.
<form action="index.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire" >
<table>
<tr>
<td width="30%">Nom : </td>
<td width="70%">
<SELECT name="nom" size="1">
<OPTION value="defaut" id="defaut">Saisir lettre</option>
<OPTION value="A">A</option>
<OPTION value="B">B</option>
<OPTION value="C">C</option>
<OPTION value="D">D</option>
<OPTION value="E">E</option>
<OPTION value="F">F</option>
<OPTION value="G">G</option>
<OPTION value="H">H</option>
<OPTION value="I">I</option>
<OPTION value="J">J</option>
<OPTION value="K">K</option>
<OPTION value="L">L</option>
<OPTION value="M">M</option>
<OPTION value="N">N</option>
<OPTION value="O">O</option>
<OPTION value="P">P</option>
<OPTION value="Q">Q</option>
<OPTION value="R">R</option>
<OPTION value="S">S</option>
<OPTION value="T">T</option>
<OPTION value="U">U</option>
<OPTION value="V">V</option>
<OPTION value="W">W</option>
<OPTION value="X">X</option>
<OPTION value="Y">Y</option>
<OPTION value="Z">Z</option>
</tr>
<tr>
<td width="30%">Unité : </td>
<td width="40%">
<SELECT name="uni" size="1" >
<OPTION value="defaut" id="defaut">Saisir l'unité</option>
<OPTION value="U-UCA">UNITE DE CHIRURGIE AMBULATOIRE</option>
<OPTION value="U-URC">UNITE DE RECHERCHE CLINIQUE</option>
<OPTION value="U-USC">UNITE DE SURVEILLANCE CONTINUE</option>
<OPTION value="U-UEB">UNITE D'EPIDEMIOLOGIE ET BIOSTATISTIQUE</option>
<OPTION value="U-UHC-ORL-CHU">UNITE D'HOSPITALISATION COMPLETE ORL - CHIR MAXILLO-FACIALE</option>
<OPTION value="U-UH-CHIR-CAL">UNITE D'HOSPITALISATION DE CHIRURGIE CERVICO-FACIALE CANCEROLOGIE</option>
</SELECT></td>
</tr>
<tr>
<td width="30%">Fonction : </td><td width="70%"><SELECT name="fct" size="1">
<OPTION value="defaut" id="defaut">Saisir la fonction</option>
<OPTION value="F-ADJ-DRH">ADJOINT(E) DRH</option>
<OPTION value="F-DIR-APREMAS">DERMOGRAPHE</option>
<OPTION value="F-DR-CHIR">DIRECTEUR INFORMATIQUE</option>
<OPTION value="F-PSYCHIATRE">PSYCHIATRE</option>
<OPTION value="F-RESP-NETTOYAGE">RESPONSABLE NETTOYAGE LOCAUX</option>
<OPTION value="F-RESP-RISQ-PRO">RESPONSABLE RISQUES PROFESSIONNELS</option>
<OPTION value="F-SUPP-CORR-MATERIOVIGILANCE">SUPPLEANT CORRESPONDANT ANESTHESIOVIGILANCE</option>
<OPTION value="F-VAGUEMESTRE">VAGUEMESTRE</option>
</SELECT></td>
</tr>
<tr>
<td width="30%">Batiment : </td><td width="70%"><SELECT name="bat" size="1">
<OPTION value="defaut" id="defaut">Saisir le batiment</option>
<OPTION value="BAT-A">BATIMENT-A</option>
<OPTION value="BAT-B">BATIMENT-B</option>
<OPTION value="BAT-C">BATIMENT-C</option>
<OPTION value="BAT-IUFC">BATIMENT-IUFC</option>
</SELECT></td>
</tr>
<tr>
<td width="30%">Pôle : </td><td width="70%"><SELECT name="pol" size="1">
<OPTION value="defaut" id="defaut">Saisir le pôle</option>
<OPTION value="POLE MEDICAL">POLE MEDICAL</option>
<OPTION value="POLE CHIRURGIE">POLE CHIRURGIE</option>
<OPTION value="POLE IMAGERIE">POLE IMAGERIE</option>
<OPTION value="POLE LABORATOIRES">POLE LABORATOIRES</option>
<OPTION value="POLE PHARMACIE">POLE PHARMACIE</option>
<OPTION value="POLE RADIOTHERAPIE">POLE RADIOTHERAPIE</option>
<OPTION value="DIRECTION DE LA RECHERCHE CLINIQUE">DIRECTION DE LA RECHERCHE CLINIQUE</option>
<OPTION value="DEPARTEMENT D\'INFORMATION MEDICALE">DEPARTEMENT D'INFORMATION MEDICALE</option>
</SELECT></td>
</tr>
</table>
<input class="button" type="submit" name="Submit" value="Recherche">
</form>
Re: Modification tableau apres recherche
Posté : 05 déc. 2012, 19:55
par Pierre_06
Personne?
Re: Modification tableau apres recherche
Posté : 05 déc. 2012, 19:58
par xTG
Avant d'utiliser une variable il faut tester son existence :
if( isSet($_POST['nom']) && $_POST['nom'] == 'test' )
Je suis d'accord mais la première fois, je ne n'execute aucune requete ayant besoin du nom... vu que je n'ai pas rempli le formulaire de recherche.
Pourquoi mettre ta requête dans une telle condition dans ce cas ?
Ce n'est donc pas un problème de code mais de réflexion.
Réfléchis à ce que tu veux et énonces en français les conditions que tu veux pour chaque traitement.
Après il est bien plus simple de transcrire cela en code avec des conditions PHP.
Et surtout ça évite de mettre d'inventer des conditions...
Re: Modification tableau apres recherche
Posté : 05 déc. 2012, 20:03
par Pierre_06
Je dois tester ce que renvois le formulaire, l'utilisateur peut renseigner seulement le nom, l'unité et la fonction...
Ayant 5 paramètres, je teste toutes les combinaisons possibles à savoir 2^5.
Mais la première fois que j'arrive sur ma page, aucune recherche n'a été lançée, donc nom, unité,fct sont "inconnues", mais je souhaite afficher un tableau contenant tout le personnel.
Re: Modification tableau apres recherche
Posté : 05 déc. 2012, 21:12
par xTG
Ta condition est donc : Un formulaire a-t-il été posté ?
Le code correspondant :
if( !empty($_POST) ){
// un formulaire a été posté via la méthode POST
}else{
// aucun formulaire n'a été posté
}