IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Formulaire de recherche


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    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 : 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
     
    <?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

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    a l'aide de la fonction explode, je pense que tu peux y arriver.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab_element=explode(";",$liste_npc);
    Ensuite tu parcrous ce tableau:
    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
     
    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>';
      }
     
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut
    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 : 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
     
    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

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut
    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 : 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
    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?

  5. #5
    Membre éclairé Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Par défaut
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Par défaut
    Disons que même si je recherche le nom exact, ca me renvoie une page blanche

Discussions similaires

  1. Formulaire de recherche multitables
    Par SpyesX dans le forum Access
    Réponses: 7
    Dernier message: 24/11/2005, 12h50
  2. [MySQL] Formulaire de recherche PHP + un script d recherche en HTML
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/11/2005, 20h44
  3. alléger un formulaire de recherche
    Par jarod71 dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2005, 12h11
  4. Réponses: 3
    Dernier message: 20/10/2005, 13h42
  5. Réponses: 5
    Dernier message: 18/10/2005, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo