Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 15/08/2007, 10h39   #1
Invité régulier
 
Inscription : mars 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 66
Points : 6
Points : 6
Par défaut [CSV] Formulaire de recherche

Bonjour à tous!

J'essaie de faire un script de recherche dans un variable contenant un csv!

Voici mon code:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
<?php
if(!isset($_POST['rechercher'])) {
print '
<form action="npc.php" method="post" />
	<input type="text" name="nom" value="Nom..." />
	<select name="royaume">
		<option value="Tous">Royaume...</option>
		<option value="Alsius">Alsius</option>
		<option value="Ignis">Ignis</option>
		<option value="Syrtis">Syrtis</option>
	</select>
	<select name="classe">
		<option value="Toutes">Classe...</option>
		<option value="Alchemist">Alchemist</option>
		<option value="Archer Trainer">Archer Trainer</option>
		<option value="Barbarian Trainer">Barbarian Trainer</option>
		<option value="Blacksmith">Blacksmith</option>
		<option value="Conjurer Trainer">Conjurer Trainer</option>
		<option value="Denizen">Denizen</option>
		<option value="Farrier">Farrier</option>
		<option value="General">General</option>
		<option value="Guard">Guard</option>
		<option value="Guardia de la Arena">Guardia de la Arena</option>
		<option value="Guardia Elite">Guardia Elite</option>
		<option value="Guía">Guía</option>
		<option value="Gunsmith">Gunsmith</option>
		<option value="Hunter Trainer">Hunter Trainer</option>
		<option value="Knight Trainer">Knight Trainer</option>
		<option value="Mage Trainer">Mage Trainer</option>
		<option value="Marksman Trainer">Marksman Trainer</option>
		<option value="Merchant">Merchant</option>
		<option value="Noble">Noble</option>
		<option value="Notario de Clan">Notario de Clan</option>
		<option value="Tailor">Tailor</option>
		<option value="Teletransportador">Teletransportador</option>
		<option value="Town Crier">Town Crier</option>
		<option value="Warlock Trainer">Warlock Trainer</option>
		<option value="Warrior Trainer">Warrior Trainer</option>
		<option value="Woodworker">Woodworker</option>		
	</select>
	<input type="submit" name="rechcercher" value="Rechercher!" />
</form>';
}
if(isset($_POST['rechercher'])) {
$nom = $_POST['nom'];
$royaume = $_POST['royaume'];
$classe = $_POST['classe'];
// Filtrer!
}
// Bdd des npc: name,location,job,xpos,zpos,realm
$liste_npc = "Gilbror,Montsognir City,Denizen,1008,1351,Alsius;
Martos,Vinland Forest,Denizen,1223,2442,Alsius;
Sighild,Herulf's Slope,Denizen,838,1193,Alsius;
Vilcor,Withering Heights,Denizen,755,1907,Alsius;
Woodur,Montsognir City,Alchemist,1012,1316,Alsius;";
?>
Je ne sais pas comment coder le filtrage...

Voici ce qui doit se passer:
-> Créer une variable $resultat_nom contenant le résultat de la recherche de nom à partir de la variable $liste_npc, le nom est recherché dans le (les) mot(s) devant le premier virgule à chaque ligne!
-> Faire pareil pour classe, classe étant le 4ème critère dans la ligne, à partir de ce que $resultat_nom a filtré!
-> Faire pareil pour royaume, royaume étant le dernier critère dela ligne, à partir de ce que $resultat_classe a filtré!

Qui peut m'aider?

Merci
elwario91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 12h41   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
a l'aide de la fonction explode, je pense que tu peux y arriver.
Code :
1
2
3
4
5
6
 
$liste_npc = "Gilbror,Montsognir City,Denizen,1008,1351,Alsius;
Martos,Vinland Forest,Denizen,1223,2442,Alsius;
Sighild,Herulf's Slope,Denizen,838,1193,Alsius;
Vilcor,Withering Heights,Denizen,755,1907,Alsius;
Woodur,Montsognir City,Alchemist,1012,1316,Alsius;";
Pour séparer les différents éléments par rapport au ";":
Code :
$tab_element=explode(";",$liste_npc);
Ensuite tu parcrous ce tableau:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
foreach($tab_element as $element){
   //permet de séparer par rapport à la virgule
   $infos=explode(",",$element);
  if($nom==$infos[0]){
    echo $nom.' trouvé<br>';
  }
  if($royaume==$infos[5]){
    echo $royaume.' trouvé<br>';
  }
  if($classe==$infos[3]){
    echo $classe.'trouvé<br>';
  }
 
}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 14h10   #3
Invité régulier
 
Inscription : mars 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 66
Points : 6
Points : 6
Merci!

Ca commence à marcher mais la partie qui vérifier le nom ne marche pas, j'ai une belle page blanche

J'ai un peu modifié:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
if(isset($_POST['rechercher'])) {
 
$nom = $_POST['nom'];
$royaume = $_POST['royaume'];
$classe = $_POST['classe'];
 
// name,location,job,xpos,zpos,realm
$tab_element = explode(";", $liste_npc);
foreach($tab_element as $element) {
	$infos = explode(",",$element);
	$nom_npc = $infos['0'];
	$royaume_npc = $infos['6'];
	$classe_npc = $infos['3'];
	if($nom == $nom_npc) { print "$nom_npc trouvé!<br />"; }
	}
}
Mais même si je recherche le nom exact ca renvoie une page blanche!
Par contre les variables contiennent tout ce qui faut, bizarre...
$nom_npc contient pourtant bien le nom mais ca marche pas
elwario91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2007, 21h19   #4
Invité régulier
 
Inscription : mars 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 66
Points : 6
Points : 6
J'ai un peu modifié et ca marche et ensuite j'ai essayé avec des foreach de faire les critères de recherche...
Mais ca bloque

Voici le code:
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
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php
$liste_npc = "Gilbror,Montsognir City,Denizen,1008,1351,Alsius;
Martos,Vinland Forest,Denizen,1223,2442,Alsius;
Sighild,Herulf's Slope,Denizen,838,1193,Alsius;
Vilcor,Withering Heights,Denizen,755,1907,Alsius;
Woodur,Montsognir City,Alchemist,1012,1316,Alsius;
Aaga,Rottersvall Village,Mage Trainer,883,783,Alsius;
Alamara,Skolheim Village,Woodworker,1270,431,Alsius;
Almar,Gokstaad Port,Guard,170,2113,Alsius;
Alrik,Montsognir City,Archer Trainer,990,1316,Alsius;
Andre,Gokstaad Port,Town Crier,141,2104,Alsius;
Arne,Skolheim Village,Guard,1254,433,Alsius;
Arnes,Montsognir City,Guard,925,1427,Alsius;
Arnulf,Rottersvall Village,Merchant,826,781,Alsius;
Asgeir,Montsognir City,Notario de Clan,912,1340,Alsius;
Balim,Montsognir City,Guard,1035,1339,Alsius;
Bathildar,Montsognir City,Guard,887,1427,Alsius;
Blofo,Hopstad Town,Town Crier,1954,1374,Alsius;
Bred,Skolheim Village,Guard,1255,405,Alsius;
Dagmar,Montsognir City,Hunter Trainer,980,1412,Alsius;
Darien,Eternal White Island,Guard,815,953,Alsius;
Darthin,Birkka City,Guard,1127,2090,Alsius;
Daulia,Skolheim Village,Guard,1224,435,Alsius;
Dauliara,Birkka City,Gunsmith,1187,2019,Alsius;
Dirk,Skolheim Village,Tailor,1261,421,Alsius;
Drussila,Hopstad Town,Guard,1894,1412,Alsius;
Edda,Birkka City,Conjurer Trainer,1142,2111,Alsius;
Edwald,Birkka City,Knight Trainer,1180,2040,Alsius;
Einff,Hopstad Town,Guard,1963,1365,Alsius;
Eiri,Rottersvall Village,Guard,880,808,Alsius;
Elborg,Birkka City,Gunsmith,1210,2058,Alsius;
Eldrica,Gokstaad Port,Warlock Trainer,135,2093,Alsius;
Eldrid,Montsognir City,Knight Trainer,928,1304,Alsius;
Elke,Montsognir City,Marksman Trainer,996,1368,Alsius;
Elma,Montsognir City,Conjurer Trainer,936,1350,Alsius;
Erikin,Skolheim Village,Town Crier,1244,434,Alsius;
Eskil,Skolheim's Surroundings,Guard,1304,540,Alsius;
Fane,Rottersvall Village,Tailor,865,801,Alsius;
Fegret,Initiation Island,Guard,1380,400,Alsius;
Ferstel,Gokstaad Port,Guard,113,2066,Alsius;
Fula,Gokstaad Port,Guard,204,2126,Alsius;
Fundor,Birkka City,Guard,1147,2140,Alsius;
Furhild,Hopstad Town,Gunsmith,1908,1396,Alsius;
Gasser,Montsognir City,Guard,1015,1340,Alsius;
Gerolf,Hopstad Town,Conjurer Trainer,1899,1413,Alsius;
Ghel,Rottersvall Village,Alchemist,894,778,Alsius;
Ghia,Rottersvall Village,Tailor,891,785,Alsius;
Gregor,Hopstad Town,Arena Guardian,1812,1119,Alsius;
Groff,Rottersvall Village,Gunsmith,830,806,Alsius;
Crystal Guard I,Crystal Island,Elite Guard,348,469,Alsius;
Crystal Guard II,Crystal Island,Elite Guard,503,293,Alsius;
Crystal Guard III,Crystal Island,Elite Guard,276,313,Alsius;
Crystal Guard IV,Crystal Island,Elite Guard,301,330,Alsius;
Crystal Guard V,Crystal Island,Elite Guard,411,340,Alsius;
Crystal Guard VI,Crystal Island,Elite Guard,538,349,Alsius;
Crystal Guard VII,Crystal Island,Elite Guard,800,557,Alsius;";
 
if(!isset($_POST['rechercher'])) {
print '
<form action="npc.php" method="post" />
	<input type="text" name="nom" value="Nom..." />
	<select name="royaume">
		<option value="Tous">Royaume...</option>
		<option value="Alsius">Alsius</option>
		<option value="Ignis">Ignis</option>
		<option value="Syrtis">Syrtis</option>
	</select>
	<select name="classe">
		<option value="Toutes">Classe...</option>
		<option value="Alchemist">Alchemist</option>
		<option value="Archer Trainer">Archer Trainer</option>
		<option value="Barbarian Trainer">Barbarian Trainer</option>
		<option value="Blacksmith">Blacksmith</option>
		<option value="Conjurer Trainer">Conjurer Trainer</option>
		<option value="Denizen">Denizen</option>
		<option value="Farrier">Farrier</option>
		<option value="General">General</option>
		<option value="Guard">Guard</option>
		<option value="Guardia de la Arena">Guardia de la Arena</option>
		<option value="Guardia Elite">Guardia Elite</option>
		<option value="Guía">Guía</option>
		<option value="Gunsmith">Gunsmith</option>
		<option value="Hunter Trainer">Hunter Trainer</option>
		<option value="Knight Trainer">Knight Trainer</option>
		<option value="Mage Trainer">Mage Trainer</option>
		<option value="Marksman Trainer">Marksman Trainer</option>
		<option value="Merchant">Merchant</option>
		<option value="Noble">Noble</option>
		<option value="Notario de Clan">Notario de Clan</option>
		<option value="Tailor">Tailor</option>
		<option value="Teletransportador">Teletransportador</option>
		<option value="Town Crier">Town Crier</option>
		<option value="Warlock Trainer">Warlock Trainer</option>
		<option value="Warrior Trainer">Warrior Trainer</option>
		<option value="Woodworker">Woodworker</option>		
	</select>
	<input type="submit" name="rechercher" value="Rechercher!" />
</form>';
}
 
if(isset($_POST['rechercher'])) {
	$nom = $_POST['nom'];
	$royaume = $_POST['royaume'];
	$classe = $_POST['classe'];
 
	$explode = explode(";", $liste_npc);
	$split = "+";
 
	$i = 0;
	foreach($explode as $element) {
		$infos = explode(",", $element);
		$nom_npc = $infos[0];
		$royaume_npc = $infos[5];
		$classe_npc = $infos[2];
 
		$recherche = strpos($nom_npc, $nom);
		if($recherche) {
			$donnees_array = $nom_npc.$split.$royaume_npc.$split.$classe_npc;
			$resultat_noms = array($i => $donnes_array); $i++;
		}
	}
 
	$i = 0;
	foreach($resultat_noms as $element) {
		$infos = explode("+", $element);
		$nom_npc = $infos[0];
		$royaume_npc = $infos[1];
		$classe_npc = $infos[2];
		if($royaume !== "Tous") {
			if($royaume_npc == $royaume) {
				$donnees_array = $nom_npc.$split.$royaume_npc.$split.$classe_npc;
				$resultat_noms = array($i => $donnes_array); $i++;
			}
		}
	}
 
	$i = 0;
	foreach($resultat_noms as $element) {
		$infos = explode("+", $element);
		$nom_npc = $infos[0];
		$royaume_npc = $infos[1];
		$classe_npc = $infos[2];
		if($classe !== "Tous") {
			if($classe_npc == $classe) {
				$donnees_array = $nom_npc.$split.$royaume_npc.$split.$classe_npc;
				$resultat_noms = array($i => $donnes_array); $i++;
			}
		}
	}
 
	echo '<table>';
	foreach($resultat_noms as $element) {
		echo '<tr><tf>'.$element[0].'</tf></tr>';
	echo '</table>';
	}
}
 
?>
Qui peut m'aider, merci?
elwario91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 07h12   #5
Membre régulier
 
Avatar de B.Moncef
 
Étudiant
Inscription : août 2007
Messages : 75
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 75
Points : 83
Points : 83
Citation:
Envoyé par elwario91 Voir le message
Mais ca bloque
Qu'est ce qui bloque ? tu as un message d'erreur ?
Tu peux mettre des echo un peu partout pour voir a quel niveau ca bloque aussi.
B.Moncef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 09h18   #6
Invité régulier
 
Inscription : mars 2007
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 66
Points : 6
Points : 6
Disons que même si je recherche le nom exact, ca me renvoie une page blanche
elwario91 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 04h46.


 
 
 
 
Partenaires

Hébergement Web