bjr
j'ai écrit ce code qui grace a 5 critères permet de chercher un fichier pdf, on n'est pas obligé de rentrer les 5 criteres ...mais bon j'ai un souci c'est pas vraiment ce que je voulais, je m'explique les noms des fichier pdf sont de cette forme SECXX_TYP_REF_OBJET_DATE
au depart j'aivais ca:
grace a UN critere je pouvais avoir les fichiers correspondant au critere donné...
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
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 <!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" xml:lang="fr" lang="fr"> <link rel="stylesheet" type="text/css" title="site2" href="site2.css" /> <head> </head> <body> <?php if (isset($_POST['section'])) // Si la variable existe { $posi = $_POST['position'] - 1; $dossier = 'Courrier/' ; $list = scandir($dossier); //scan le dossier Courrier foreach ($list as $file) //identique a for mais specifié au tableau { $divfichier = explode('_',$file); if(preg_match('`'.$_POST['section'].'`', $divfichier[$posi])){ echo '<a href="'.$file.'">'.$file.'</a><br/>'; } } } else // La variable n'existe pas encore { $section = ""; // On crée une variable $section vide } ?> Recherche du fichier: <form action= "fichier.php" method="post"> <p> <select name = "position"/><option value="1">Corps administratif du courrier</option><option value="2">Type de courrier</option><option value="3">Numero du courrier</option><option value="4">Objet du courrier</option><option value="5">Date du courrirer</option></select><br/> <input type ="text" name= "section" /> <input type ="submit" value ="Validez" /> </p> </form> </body> </html>
mais j'aimerais que grace AUX criteres donnés avoir le fichier voulu c'est a dire que je veux renseigner plusieurs criteres a la fois, soit un, 2, 3 ou 4 criteres choisi...J'ai ecrit ce code mais je suis pas satisfaite parce que j'ai du passer par les options (qui ne serve dans ce cas a rien) pour avoir ce que je veux...j'aimerais donc les enlever...comme vous l'aurez remarqué je suis noviste en php
merci a vous!!!
Ah oui j'ai oublié excusez moi le 2eme code a ete bafouillé j'arrive avec avoir ma recherche par multicritere mais le code ne me plait en effet en ne mettant qu'un seul critere dans le formulaire j'ai la liste des fichiers correspondant a la demande mais d'apres le code c'est impossible puisque dans
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 <!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" xml:lang="fr" lang="fr"> <link rel="stylesheet" type="text/css" title="site2" href="site2.css" /> <head> </head> <body> <?php if ((isset($_POST['section'])) and (isset($_POST['type']))) // Si la variable existe { $posi1 = $_POST['position1'] - 1; $posi2 = $_POST['position2'] - 1; $posi3 = $_POST['position3'] - 1; $posi4 = $_POST['position4'] - 1; $posi5 = $_POST['position5'] - 1; $dossier = 'Courrier/' ; $list = scandir($dossier); //scan le dossier Courrier foreach ($list as $file) //identique a for mais specifié au tableau { $divfichier = explode('_',$file); if((preg_match('`'.$_POST['section'].'`', $divfichier[$posi1])) AND (preg_match('`'.$_POST['type'].'`', $divfichier[$posi2])) AND (preg_match('`'.$_POST['reference'].'`', $divfichier[$posi3])) AND (preg_match('`'.$_POST['objet'].'`', $divfichier[$posi4])) AND (preg_match('`'.$_POST['date'].'`', $divfichier[$posi5]))) { echo '<a href="'.$file.'">'.$file.'</a><br/>'; } } } else // La variable n'existe pas encore { $section = ""; // On crée une variable $section vide } ?> <p> <form action= "new 2.php" method="post"> <p> <select name = "position1"/><option value="1">Corps administratif du courrier</option> </select <select name = "position2"/><option value="2">Type de courrier</option</select> <select name = "position3"/><option value="3">Reference du courrier</option></select> <select name = "position4"/><option value="4">Objet du courrier</option</select> <select name = "position5"/><option value="5">Date du Courrier</option></select> </p> Recherche du fichier : <p> <p> Corps administratif: <input type ="text" name= "section"/> </P> <p> Type de courrier: <input type ="text" name= "type"/> </p> <p> Reference du courrier: <input type ="text" name= "reference"/> </p> <p> Objet du courier: <input type ="text" name= "objet"/> </p> <p> Date du courier: <input type ="text" name= "date"/> </p> <input type ="submit" value ="Validez" /> </p> </p> </form> </body> </html>
je n'ai que des AND...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if((preg_match('`'.$_POST['section'].'`', $divfichier[$posi1])) AND (preg_match('`'.$_POST['type'].'`', $divfichier[$posi2])) AND (preg_match('`'.$_POST['reference'].'`', $divfichier[$posi3])) AND (preg_match('`'.$_POST['objet'].'`', $divfichier[$posi4])) AND (preg_match('`'.$_POST['date'].'`', $divfichier[$posi5])))
vous comprennez que ca ne devrais pas marcher
Partager