Poblème Création d'un petit module recherche
Résolu
kepsylis
Messages postés
41
Statut
Membre
-
kepsylis Messages postés 41 Statut Membre -
kepsylis Messages postés 41 Statut Membre -
Bonjour,
Voila comme dit dans le titre j'essaye de créer un petit module de recherche très simple.
Je débute un peu en php donc je rencontre quelque difficulté.
Donc j'ai pensé à quelques chose qui est peut être bon ou pas bon mais je n'arrive pas à l'appliquer. Je m'explique avec le code:
<?php
mysql_connect("localhost", "root", "xxx");
mysql_select_db("nom_db");
echo "<form method=\"get\">
<input name=\"$titre\" type=\"text\"/>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' ");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><?php echo $donnees['titre']; ?></p>
<?php
}
?>
Le but étant de trouvé un film répertorié dans ma base de donnée en entrant le titre dans le petit formulaire.
Donc dans un premier temps, on remplie le formulaire qui ne comporte qu'un seul champ: titre.
Si je suis mon idée , je voudrais que le titre écris et recherché par l'utilisateur soit égal à $titre
et ensuite je fini par recherché le titre = $titre dans ma base de donnée correspondant.
Mais je en vois pas ou ça bloque en faite.
Merci d'avance de votre aide.
PS: Je commence seulement par chercher le titre dans une seul base de donné mais mon but final et de faire en sorte de choisir de rechercher un titre dans la base de donné 1 ou 2 ( choix que l'on pourra faire avec un menu déroulant ) Donc si vous avez des idées n'hésitez surtout pas svp
Voila comme dit dans le titre j'essaye de créer un petit module de recherche très simple.
Je débute un peu en php donc je rencontre quelque difficulté.
Donc j'ai pensé à quelques chose qui est peut être bon ou pas bon mais je n'arrive pas à l'appliquer. Je m'explique avec le code:
<?php
mysql_connect("localhost", "root", "xxx");
mysql_select_db("nom_db");
echo "<form method=\"get\">
<input name=\"$titre\" type=\"text\"/>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' ");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><?php echo $donnees['titre']; ?></p>
<?php
}
?>
Le but étant de trouvé un film répertorié dans ma base de donnée en entrant le titre dans le petit formulaire.
Donc dans un premier temps, on remplie le formulaire qui ne comporte qu'un seul champ: titre.
Si je suis mon idée , je voudrais que le titre écris et recherché par l'utilisateur soit égal à $titre
et ensuite je fini par recherché le titre = $titre dans ma base de donnée correspondant.
Mais je en vois pas ou ça bloque en faite.
Merci d'avance de votre aide.
PS: Je commence seulement par chercher le titre dans une seul base de donné mais mon but final et de faire en sorte de choisir de rechercher un titre dans la base de donné 1 ou 2 ( choix que l'on pourra faire avec un menu déroulant ) Donc si vous avez des idées n'hésitez surtout pas svp
A voir également:
- Poblème Création d'un petit module recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création d'un compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
36 réponses
Salut je ne sais pas is mon code va t'aider mais essaye voir si t'as d'autres questions n'hésite pas
<html > <head> <title>Document sans titre</title> </head> <body> <?php $con = mysql_connect("localhost","root",""); if($con) { $base = mysql_select_db(nomDeLaBase); if($base) { $bool = true; } else { echo '<script>alert("Erreur de selection de la BDD")</script>'; $bool = false; } { else { echo '<script>alert("Erreur de connection au Serveur MySQL")</script>'; $bool = false; } if($bool && isset(btEnvoyer)) { $titreChercher = $_POST['titreFilm']; $req = mysql_query("SELECT * FROM lien_film WHERE titre = '".$titreChercher."'"); if(mysql_num_rows($req) > 0) { $row = mysql_fetch_array($req); echo "Le titre <i><b>".$row['titre']."</b></i> Existe dans la base"; } } ?> <table width="288" border="1"> <tr> <td><form id="form1" name="form1" method="post" action=""> <label>Titre <input name="tittreFilm" type="text" id="tittreFilm" /> </label> <label> <input type="submit" name="btEnvoyer" value="Rechercher" /> </label> </form> </td> </tr> </table> </body> </html>
Pour commencer merci d'avoir répondu.
Malheureusement, je rencontre un problème: J'ai remplacé dans
<?php
$con = mysql_connect("localhost","root","")
if($con) <=== line 11
{
$base = mysql_select_db(nomDeLaBase)
Root et mis un mdp ainsi que nomdeLaBase.
Mais il me dise : "Parse error: syntax error, unexpected T_IF in /mnt/147/sda/2/7/.../..../.../list_film2.php on line 11
Vu que je ne comprend pas tout ton code je ne sais pas quel est le problème
Malheureusement, je rencontre un problème: J'ai remplacé dans
<?php
$con = mysql_connect("localhost","root","")
if($con) <=== line 11
{
$base = mysql_select_db(nomDeLaBase)
Root et mis un mdp ainsi que nomdeLaBase.
Mais il me dise : "Parse error: syntax error, unexpected T_IF in /mnt/147/sda/2/7/.../..../.../list_film2.php on line 11
Vu que je ne comprend pas tout ton code je ne sais pas quel est le problème
Ok
excuse moi j'ai oublier les " ; " sur le ligne
$con = mysql_connect("localhost","root","");
je iens de le corriger c'est bon
excuse moi j'ai oublier les " ; " sur le ligne
$con = mysql_connect("localhost","root","");
je iens de le corriger c'est bon
Hum oui en effet c'était le problème à la ligne 11 mais le meme probleme est survenu à la ligne 14 et j'ai remarqué qu'il n'y avait pas el point virgule non plus donc je les rajouté.
Par contre le même message revient à la ligne 24 mais la ca n'a pas l'air d'être un probleme de virgule:
<?php
$con = mysql_connect("localhost","dreamovies","1c1wloar");
if($con)
{
$base = mysql_select_db(lien_film);
if($base)
{
$bool = true;
}
else
{
echo '<script>alert("Erreur de selection de la BDD")</script>';
$bool = false;
}
{
else <=== line 24
{
echo '<script>alert("Erreur de connection au Serveur MySQL")</script>';
$bool = false;
}
if($bool && isset(btEnvoyer))
{
$titreChercher = $_POST['titre'];
$req = mysql_query("SELECT * FROM lien_film WHERE titre = '".$titreChercher."'");
if(mysql_num_rows($req) > 0)
{
$row = mysql_fetch_array($req);
echo "Le titre <i><b>".$row['titre']."</b></i> Existe dans la base";
}
}
Par contre le même message revient à la ligne 24 mais la ca n'a pas l'air d'être un probleme de virgule:
<?php
$con = mysql_connect("localhost","dreamovies","1c1wloar");
if($con)
{
$base = mysql_select_db(lien_film);
if($base)
{
$bool = true;
}
else
{
echo '<script>alert("Erreur de selection de la BDD")</script>';
$bool = false;
}
{
else <=== line 24
{
echo '<script>alert("Erreur de connection au Serveur MySQL")</script>';
$bool = false;
}
if($bool && isset(btEnvoyer))
{
$titreChercher = $_POST['titre'];
$req = mysql_query("SELECT * FROM lien_film WHERE titre = '".$titreChercher."'");
if(mysql_num_rows($req) > 0)
{
$row = mysql_fetch_array($req);
echo "Le titre <i><b>".$row['titre']."</b></i> Existe dans la base";
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
regarde juste avant le IF j'ai ouvert l'ccolade au lieu de la fermer
tu devrais avoir ça
}
if
{
...
}
tu devrais avoir ça
}
if
{
...
}
dsl des erreurs je tape depuis le hier matin sur le clavier
mais c'est pas grave on eut continuer dac?
mais c'est pas grave on eut continuer dac?
Moi y a pas de problème et je ne t'en veux pas pour ça ^^ tu prend deja la peine de m'aider. C'est deja beaucoup.
Ligne 30 également un problème :
else
{
echo '<script>alert("Erreur de connection au Serveur MySQL")</script>';
$bool = false;
}
if($bool && isset(btEnvoyer)) <===== line 30
{
$titreChercher = $_POST['titre'];
$req = mysql_query("SELECT * FROM lien_film WHERE titre = '".$titreChercher."'");
if(mysql_num_rows($req) > 0)
{
$row = mysql_fetch_array($req);
echo "Le titre <i><b>".$row['titre']."</b></i> Existe dans la base";
}
else
{
echo '<script>alert("Erreur de connection au Serveur MySQL")</script>';
$bool = false;
}
if($bool && isset(btEnvoyer)) <===== line 30
{
$titreChercher = $_POST['titre'];
$req = mysql_query("SELECT * FROM lien_film WHERE titre = '".$titreChercher."'");
if(mysql_num_rows($req) > 0)
{
$row = mysql_fetch_array($req);
echo "Le titre <i><b>".$row['titre']."</b></i> Existe dans la base";
}
ok
comme tu le voie je n'ai pas verifier le code mais je sai squ'il va fonctionner.
essaie juste d'enlever $bool je trouve qu'il est de trop dans le code et laisse juste
if(isset(btEnvoyer))
dac?
comme tu le voie je n'ai pas verifier le code mais je sai squ'il va fonctionner.
essaie juste d'enlever $bool je trouve qu'il est de trop dans le code et laisse juste
if(isset(btEnvoyer))
dac?
Voila j'ai presque réussi mais par contre la recherche se fait par titre exacte. Au lieu de prendre tout les titre contenant le mot-clé marqué. Et de plus, ça ne trouve qu'un seul film sur les 41 que j'ai entré ( je les ai pas tous essayé bien sur )
<?php
mysql_connect("localhost", "root", "xxxx");
mysql_select_db("NomBdd");
echo "<form method=\"post\" action=\"list_film.php\">
<input name=\"titre\" type=\"text\"/>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$titre = $_POST['titre'];
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' ");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><?php echo $donnees['titre']; ?></p>
<?php } ?>
Ce code est donc presque achevé mais il manque un petit truc. Saurais-tu me dire quoi ?
Ps: Désolé pour ton code mais je tentais deux manières différentes. Et ton code est pas a mon niveau j'ai encore un peu de mal ^^ Bref j'espère que tu m'en veux pas.
<?php
mysql_connect("localhost", "root", "xxxx");
mysql_select_db("NomBdd");
echo "<form method=\"post\" action=\"list_film.php\">
<input name=\"titre\" type=\"text\"/>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$titre = $_POST['titre'];
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre='$titre' ");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><?php echo $donnees['titre']; ?></p>
<?php } ?>
Ce code est donc presque achevé mais il manque un petit truc. Saurais-tu me dire quoi ?
Ps: Désolé pour ton code mais je tentais deux manières différentes. Et ton code est pas a mon niveau j'ai encore un peu de mal ^^ Bref j'espère que tu m'en veux pas.
Rectification : Ca ne trouve que les films écrit seulement en lettre ( sans chiffre ) et en un seul mot.
ok ok
nous allons faire avec le tiens c'est deja tres bien
1. pour la recherche générique il te faut juste ajouter des caracteres générique '%' autour de la variable dans la requete SQL essaye ça voir
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre=%'$titre'% ");
N.B ne laisse pas d'espace entre % et ta variable, le code signifie "RECHERCHE TOUS LES LIVRES DONC LE TITRE CONTIENS LE MOT (ou la lettre) $titre "
pour la recherche avec "LE TITRE COMMENCE PAR $titre il faut juste enlever le premier %"
cdlt
nous allons faire avec le tiens c'est deja tres bien
1. pour la recherche générique il te faut juste ajouter des caracteres générique '%' autour de la variable dans la requete SQL essaye ça voir
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre=%'$titre'% ");
N.B ne laisse pas d'espace entre % et ta variable, le code signifie "RECHERCHE TOUS LES LIVRES DONC LE TITRE CONTIENS LE MOT (ou la lettre) $titre "
pour la recherche avec "LE TITRE COMMENCE PAR $titre il faut juste enlever le premier %"
cdlt
Ben par exemple :
Le film Outlander sera trouvé car il est en un seul mot
Alors que le film 2046 qui est en un seul "bloc" ne sera pas trouvé
Tout comme un film tel que Iron-man, Casino Royal ou 3 amis ne sera pas trouvé.
Le film Outlander sera trouvé car il est en un seul mot
Alors que le film 2046 qui est en un seul "bloc" ne sera pas trouvé
Tout comme un film tel que Iron-man, Casino Royal ou 3 amis ne sera pas trouvé.
je vois
fais la recherche générique c'est la bonne dans ce cas précis ton problème sera résolu
tu fais une gestion de bibliothèque? car moi je ss entrain de faire une mais pas en php, j'utilise un autre langage, pour le moment je ss entrain de modéliser le diagramme de classes
fais la recherche générique c'est la bonne dans ce cas précis ton problème sera résolu
tu fais une gestion de bibliothèque? car moi je ss entrain de faire une mais pas en php, j'utilise un autre langage, pour le moment je ss entrain de modéliser le diagramme de classes
Non je ne fais pas une gestion de bibliothèque. En faite je créer un site qui diffuse des film et épisode de série en streaming. Donc c'est pour ca qu j'ai besoin d'un module recherche.
Par contre en insérant %
J'ai un probleme a la ligne 23:
$titre = $_POST['titre'];
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre=%'$titre'% ");
while ($donnees = mysql_fetch_array($reponse) ) <=== line 23
{
?>
Par contre en insérant %
J'ai un probleme a la ligne 23:
$titre = $_POST['titre'];
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre=%'$titre'% ");
while ($donnees = mysql_fetch_array($reponse) ) <=== line 23
{
?>
essaye ça
à la place de = met plus tot LIKE
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
à la place de = met plus tot LIKE
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
Merci beaucoup ! ca fonctionne niquel.
Je voudrais juste savoir , en ajoutant un champ dans le formulaire sous forme de liste déroulante dans lequel j'aurais le choix entre des recherches dans les séries ou dans les films, comment faire pour changer la base de donné dans laquel ca recherche:
Si film selectionné alors ca affiche ca
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
Si Série alors :
$reponse = mysql_query("SELECT * FROM list_serie WHERE titre LIKE %'$titre'% ");
Je voudrais juste savoir , en ajoutant un champ dans le formulaire sous forme de liste déroulante dans lequel j'aurais le choix entre des recherches dans les séries ou dans les films, comment faire pour changer la base de donné dans laquel ca recherche:
Si film selectionné alors ca affiche ca
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
Si Série alors :
$reponse = mysql_query("SELECT * FROM list_serie WHERE titre LIKE %'$titre'% ");