Probleme de Fonction search php
pieric62
-
dindoun Messages postés 1028 Date d'inscription Statut Membre Dernière intervention -
dindoun Messages postés 1028 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un souci avec mon code en php, j'aimerais rechercher dans les logins de ma db or j'ai beau fair eun code identique au votre je n'obtiens pas de resulats:
[code]
<form name="search" method="post" action="searchorder.php" >
<input type="text" name="login" size = "28" MaxLength="20">
<br><br><br><INPUT type=submit Value="Rechercher" ><br><br>
<?php
if ( $_POST)
{
echo 'Resultats: <br><br><br> ';
mysql_connect("localhost","root","");
mysql_select_db("polar");
$search = $_POST['login'];
$rq = mysql_query("SELECT login FROM accounts WHERE login LIKE '%$search%' ");
while ( $data = mysql_fetch_array($rq) );
{
?>
<?php echo $data['login'] ; ?>
<?php
}
if (!$rq){ echo 'Aucun résultat trouvé !' ; }
}
?>
/code
J'ai un souci avec mon code en php, j'aimerais rechercher dans les logins de ma db or j'ai beau fair eun code identique au votre je n'obtiens pas de resulats:
[code]
<form name="search" method="post" action="searchorder.php" >
<input type="text" name="login" size = "28" MaxLength="20">
<br><br><br><INPUT type=submit Value="Rechercher" ><br><br>
<?php
if ( $_POST)
{
echo 'Resultats: <br><br><br> ';
mysql_connect("localhost","root","");
mysql_select_db("polar");
$search = $_POST['login'];
$rq = mysql_query("SELECT login FROM accounts WHERE login LIKE '%$search%' ");
while ( $data = mysql_fetch_array($rq) );
{
?>
<?php echo $data['login'] ; ?>
<?php
}
if (!$rq){ echo 'Aucun résultat trouvé !' ; }
}
?>
/code
A voir également:
- Probleme de Fonction search php
- Fonction si et - Guide
- Spybot search and destroy - Télécharger - Antivirus & Antimalwares
- Www.google.com search video download - Télécharger - TV & Vidéo
- Search tool - Télécharger - Divers Web & Internet
- Easy php - Télécharger - Divers Web & Internet
4 réponses
Bonjour
pieric62, ton code est correct quoi qu'en dise dindoun. Seule sa remarque sur $_POST est valable.
D'abord les balises. Il est absurde de fermer une balise php ?> pour rouvrir deux lignes plus loin <?php. Le seul effet, c'est d'envoyer quelques lignes vides au client (qui ne provoquent même pas de saut de ligne à l'affichage) et de rendre ton script difficile à lire. Donc, supprime tous les ?> et les <?php qui se suivent sans rien d'utile entre les deux.
ensuite : while ( $data = mysql_fetch_array($rq) );
ton While est suivi d'une instruction vide (; seul) donc tu 'épuises' toutes les réponse à la requête sans faire aucun traitement. Le bloc ( de { à } ) qui suit est en dehors de la boucle, et $data contient FALSE quand il s'exécute. ça devrait marcher nettement mieux sans le ;
Enfin, la place logique de tout ce qui suit le if ($_POST) est avant le traitement du formulaire, pas après. Si tu veux renvoyer un formulaire avec de messages du genre "veuillez indiquer votre nom" en cas de formulaire incomplet, il faut bien que tu aies traité le formulaire précédent avant de créer le nouveau. Car tu es bien conscient que le formulaire que tu traites dans ce script n'est pas celui que tu viens d'envoyer, mais celui que le client avait rempli avant d'appeler ton script ?
pieric62, ton code est correct quoi qu'en dise dindoun. Seule sa remarque sur $_POST est valable.
D'abord les balises. Il est absurde de fermer une balise php ?> pour rouvrir deux lignes plus loin <?php. Le seul effet, c'est d'envoyer quelques lignes vides au client (qui ne provoquent même pas de saut de ligne à l'affichage) et de rendre ton script difficile à lire. Donc, supprime tous les ?> et les <?php qui se suivent sans rien d'utile entre les deux.
ensuite : while ( $data = mysql_fetch_array($rq) );
ton While est suivi d'une instruction vide (; seul) donc tu 'épuises' toutes les réponse à la requête sans faire aucun traitement. Le bloc ( de { à } ) qui suit est en dehors de la boucle, et $data contient FALSE quand il s'exécute. ça devrait marcher nettement mieux sans le ;
Enfin, la place logique de tout ce qui suit le if ($_POST) est avant le traitement du formulaire, pas après. Si tu veux renvoyer un formulaire avec de messages du genre "veuillez indiquer votre nom" en cas de formulaire incomplet, il faut bien que tu aies traité le formulaire précédent avant de créer le nouveau. Car tu es bien conscient que le formulaire que tu traites dans ce script n'est pas celui que tu viens d'envoyer, mais celui que le client avait rempli avant d'appeler ton script ?
salut,
if ( $_POST) je mets : if (isset ($_POST['login']))
$rq = mysql_query("SELECT login FROM accounts WHERE login LIKE '%$search%' ");
je mets
$rq = mysql_query("SELECT login FROM `accounts` WHERE login LIKE '%".$search."%' ");
et puis souvent y a des trucs en plus derrière avec _utf8
<?php echo $data['login'] ; ?>
je mets
<?php echo $data[5] ; ?> // 5 : colonne de login
if ( $_POST) je mets : if (isset ($_POST['login']))
$rq = mysql_query("SELECT login FROM accounts WHERE login LIKE '%$search%' ");
je mets
$rq = mysql_query("SELECT login FROM `accounts` WHERE login LIKE '%".$search."%' ");
et puis souvent y a des trucs en plus derrière avec _utf8
<?php echo $data['login'] ; ?>
je mets
<?php echo $data[5] ; ?> // 5 : colonne de login