Problème de formulaire de recherche [Résolu]

Signaler
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020
-
Messages postés
30418
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
-
Bonjour,
mon formulaire de recherche me donne pas le résultat souhaité.
quand je met le matricule de quelqu'un pour le retrouver il me donne un autre résultat.

je fais
<?php echo extract($_POST);; ?>
me donne 2 au lieu de 0220

voici mon formulaire :
                   <form  method="post" action="index.php?page=search" style="border-radius: 5px 0px 10px 25px/5px 0px 10px 25px">
                      <table width="240" border="0" align="right" >
                        <tr>
                          <td width="151"><input type="text" name="search" /></td>
                          <td width="79"><input type="submit" name="Submit" value="SEARCH" /></td>
                        </tr>
                      </table>
                  </form>


mon code php .
<?php
include('menu/menu.php');

if(empty($_POST) || empty($_POST['search']))
{
header('Location: index.php?page=NOUVEAU');
}
else
{
extract($_POST);
}
?>
.............

6 réponses

Messages postés
14738
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
148
echo extract($_POST);

Où est le nom du champ du formulaire ?
Messages postés
30418
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
338
Bonjour,

Après avoir saisi : 0220 dans ton input puis cliqué sur ton bouton submit..Tu peux faire un Print_r de POST et nous dire ce qu'il t'affiche ?

if(empty($_POST) || empty($_POST['search']))
	{
	 header('Location: index.php?page=NOUVEAU');
	}
else
	{
          print_r($_POST);
	  extract($_POST);
	}	
?>

Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020
1
voici ce que j'obtiens:
Array ( [search] => 0220 [Submit] => SEARCH )
Messages postés
30418
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
338
En même temps... echo de extract($_post).. ne te donnera pas le résultat attendu..c'est sûr...

testes ça ..

 if(empty($_POST) || empty($_POST['search'])){
     header('Location: index.php?page=NOUVEAU');
  }else{
     extract($_POST);
     echo "<br> Print _r(post)=>";
    print_r($_POST);
     echo "<br>extract($ _ POST) => ".extract($_POST);
     echo "<br>search => ".$search;
  }



Ce qui donne comme résultats :

Print _r(post)=>Array ( [search] => 0220 [Submit] => SEARCH )
extract($ _ POST) => 2
search => 0220

...C'est donc directement la variable : $search qu'il te faut utiliser APRES avoir fait un Extract.

Perso je préfère ne pas utiliser cette fonction extract() ... elle ne te permet pas de vérifier si ta variable existe avant de l'utiliser..;

Je préfère faire :

//Recuperation de la variable :
$search = isset($_POST['search'])?$_POST['search']:NULL;

// Utilisation...
if($search){
  echo "<br>Search = ".$search;
}else{
echo "<br>La variable n'existe pas !<br>";
}





Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Messages postés
498
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
1 mars 2020
1
je viens de tester :
//Recuperation de la variable :
$search = isset($_POST['search'])?$_POST['search']:NULL;

// Utilisation...
if($search){
echo "<br>Search = ".$search;
}else{
echo "<br>La variable n'existe pas !<br>";
}
j'obtiens : Search = 0220

mais ma requète n'afiche rien :

voici ma requète :
<?php
$sql = "SELECT *
FROM victime
WHERE numQuest0
LIKE '%$search%'
OR nomV LIKE '%$search%'
OR prenomV LIKE '%$search%'
OR numeroPieceV LIKE '%$search%'
";

......
?>
Messages postés
30418
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
338
Ta question initiale est réglée. ..
Là. .tu poses une autre question. ..
C'est pas comme si tu avais déjà posté d'autres questions sur le forum. ..tu en connais les règles non ??