Problème avec un soit disant moteur de recherche lol

gssk Messages postés 24 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 28 août 2008 - 3 mai 2005 à 15:02
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010 - 3 mai 2005 à 19:05
Au fait j'ai fait un "moteur de recherche" (code pourrave je le sais merci !!), et je n'ai que d erreur de variables indéfini! tels que Mot,idM,nomM etc....
mais j'ai déclarer la méthode POST ,
est ce qqun pourrai m'aider ??? merci d'avance
o niveau de la connexion ya pa de soucis, mais la provenance de l'erreur je ne sais point !

<?
$cnx = mysql_connect('localhost','root','');
mysql_select_db('admin',$cnx);
?>
<HTML>
<HEAD>
<TITLE>Recherche Membre </TITLE>
</HEAD>

<center></center>

<form method="POST" action="rechM.php">
Entrez un mot clé:

<?

if (isset($_POST[\"Mot\"])&&($_POST[\"Mot\"] == \"\")||($_POST[\"Mot\"] == \"%\"))
{
echo \"Veuillez entrer un mot clé s'il vous plaît!\";
}
else
{
$SQL =\"SELECT nomM from membre where nomM LIKE \\"%\".$_POST[\"Mot\"].\"%\\"
OR prenomM LIKE \\"%\".$_POST[\"Mot\"].\"%\\" \";
$res = mysql_query($SQL);

while($val=mysql_fetch_array($res))
{

echo \"----
";
echo $val["idM"];
echo " - ".$val["nomM"];
echo "-".$val["prenomM"];
echo ", \";
}
}
?>
</form>

</center></HTML>
<?
mysql_close();
?>

5 réponses

cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
3 mai 2005 à 17:13
Salut

essaye de remplacer select nomM par select *... Tu sélectionnes un champ et tu lui demande de t'en afficher 3...

Si ça ne marche pas je regarderai plus profond...

Flo
0
gssk Messages postés 24 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 28 août 2008
3 mai 2005 à 17:18
oui mais la il m'affiche tout les champs alors que je veux qu'il m'affiche seulement le mot que je tape dans la textbox,

sinon il me dit toujours que Mot n'est pas définit

--=Ak=-
0
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
3 mai 2005 à 18:53
Salut

Perso je rajoute toujours un truc en début de mes pages :

$mot = !isset($_POST['mot']) ? '' : $_POST['mot'];

et ensuite tu utilises que $mot.

C'est un truc que j'avais vu dans un script : ça évites les erreurs E_NOTICE... à voir

Flo
0
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
3 mai 2005 à 18:55
Salut,

1) Ecrit correctement ton code html c'est mieux !!!

2) <? c'est pas super donc <?php

Voici le code modifié :

<?php

if(!IsSet($_POST['Mot'])){$_POST['Mot'] = NULL;}

$cnx = mysql_connect('localhost','root','');

mysql_select_db('admin',$cnx);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css" media="screen">

body {

font-family: comic sans ms, arial;

background-image: url(image/surfseul.gif);

}

.center {

text-align: center;

}

</style>

<title>Recherche Membre</title></head>









<form method="POST" action="rechM.php">

Entrez un mot clé:










<?php

if(isset($_POST['Mot']) && ($_POST['Mot'] == '') || ($_POST['Mot'] == '%')){

echo 'Veuillez entrer un mot clé s\'il vous plaît!
';

}else{

$SQL = 'SELECT nomM from membre where nomM LIKE
\'%'.$_POST['Mot'].'%\'OR prenomM LIKE \'%'.$_POST['Mot'].'%\' ';

$res = mysql_query($SQL);

while($val=mysql_fetch_array($res)){

echo '----
'

,$val['idM']

,' - ',$val['nomM']

,'-',$val['prenomM']

,', ';

}

}

echo '
',"\n",'</html>';

mysql_close();

?>


Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
3 mai 2005 à 19:05
Je renviens à ce que tu me dis :

$SQL = 'SELECT nomM from membre where nomM LIKE "%'.$_POST["Mot"].'%" OR prenomM LIKE "%'.$_POST["Mot"].'%"';
// Utilise des simple quotes ça évites les ""

Si tu suis ce que je t'ai marqué juste avant ça te donne
$sql = 'select idM, nomM, prenomM from membre where nomN like "%'.$mot.'%" or prenomM like "%'.$mot.'%"';
plus lisible à mon sens.

$res = mysql_query($SQL); // Pas de problème

while($val=mysql_fetch_array($res))
{
$ligne = '<tr><td>';
$ligne .= $val['idM'];
//Données dans le SELECT
$ligne .= ' - '. $val['nomM']; //id
$ligne .= ' - '. $val['prenomM']; //id
$ligne .= '</td></tr>';

echo $ligne; //Un seul echo c'est plus lisible non ?
}

La à mon sens tu ne dois plus avoir de probléme.

Flo
0
Rejoignez-nous