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
- Creation compte gmail - Guide
- Recherche automatique des chaînes ne fonctionne pas - 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
ok ok ok
tu ajoute un champ combo et là
$titre = $_POST['titre'];
$type = $_POST['type']; <==== ici c'est la combo qui contient le type selectionner
if($type == "film")
{
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
}
elseif($type == "serie")
{
$reponse = mysql_query("SELECT * FROM list_serie WHERE titre LIKE %'$titre'% ");
}
Mais franchement à ta place je créerais une seule table et là j'ajouterais un attibut de plus que je nommerais "type_video" qui prendra le type de video lors de l'enregistrement d'une video
et pour la recherche je ferais seulement ça
$titre = $_POST['titre'];
$type = $_POST['type']; <==== ici c'est la combo qui contient le type selectionner
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% AND type_video = '".$type."'");
cdlt.
tu ajoute un champ combo et là
$titre = $_POST['titre'];
$type = $_POST['type']; <==== ici c'est la combo qui contient le type selectionner
if($type == "film")
{
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% ");
}
elseif($type == "serie")
{
$reponse = mysql_query("SELECT * FROM list_serie WHERE titre LIKE %'$titre'% ");
}
Mais franchement à ta place je créerais une seule table et là j'ajouterais un attibut de plus que je nommerais "type_video" qui prendra le type de video lors de l'enregistrement d'une video
et pour la recherche je ferais seulement ça
$titre = $_POST['titre'];
$type = $_POST['type']; <==== ici c'est la combo qui contient le type selectionner
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE %'$titre'% AND type_video = '".$type."'");
cdlt.
Oui je vois ce que tu veux dire je test les deux et je vois ce qui me conviens bien car j'hésite à recréé certaines table ( le site étant créé depuis un an , disons que je le remet à neuf ). Donc je verrai selon.
j'ai testé la première méthode mais y a un problème de code: à la ligne 35
<?php
mysql_connect("localhost", "root", "xxxxx");
mysql_select_db("NomDB");
echo "<form method=\"post\" action=\"list_film.php\">
<input name=\"titre\" type=\"text\"/>
<select name=\"table\" type=\"text\"/>
<option name=\"film\">Films</option>
<option name=\"serie\">Séries</option>
</select>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$titre = $_POST['titre'];
$table = $_POST['table'];
if($table == "film")
{
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE '%".$titre."%'");
}
elseif($type == "serie")
{
$reponse = mysql_query("SELECT * FROM fiches_series WHERE titre LIKE '%".$titre."%'");
}
while ($donnees = mysql_fetch_array($reponse) ) <==== line 35
{
?>
<?php
mysql_connect("localhost", "root", "xxxxx");
mysql_select_db("NomDB");
echo "<form method=\"post\" action=\"list_film.php\">
<input name=\"titre\" type=\"text\"/>
<select name=\"table\" type=\"text\"/>
<option name=\"film\">Films</option>
<option name=\"serie\">Séries</option>
</select>
<input type=\"submit\" value=\"rechercher\" name=\"submit\" />
</form>";
$titre = $_POST['titre'];
$table = $_POST['table'];
if($table == "film")
{
$reponse = mysql_query("SELECT * FROM lien_film WHERE titre LIKE '%".$titre."%'");
}
elseif($type == "serie")
{
$reponse = mysql_query("SELECT * FROM fiches_series WHERE titre LIKE '%".$titre."%'");
}
while ($donnees = mysql_fetch_array($reponse) ) <==== line 35
{
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok ton code est presque bon
là reste à verifier si l'erreur ne proviens pas de la table essaie de me donner le texte exacte de l'erreur ainsi que les structures de tes deux tables
là reste à verifier si l'erreur ne proviens pas de la table essaie de me donner le texte exacte de l'erreur ainsi que les structures de tes deux tables
Code d'erreur : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/147/sda/2/7/...../....../....../list_film.php on line 35
table des films :
id int(11) auto increment
lien varchar(255)
titre varchar(255)
cat varchar(255)
timestamp Bigint(20)
Table series
id int(11) auto increment
titre varchar(255)
info text
present text
image text
auteur text
timestamp bigint(20)
table des films :
id int(11) auto increment
lien varchar(255)
titre varchar(255)
cat varchar(255)
timestamp Bigint(20)
Table series
id int(11) auto increment
titre varchar(255)
info text
present text
image text
auteur text
timestamp bigint(20)
ok et où sont les deux tables (ou vues) lien_film et fiches_series je veux leurs structures car c'est MySQL qui genére l'erreur
Je comprend pas ce que tu veux savoir désolé. Ils sont tout les deux dans la même base de données. En tout cas, sur d'autre page j'arrive a récupérer les informations ( exemple: j'ai une page ou j'ai la liste des films classé dans l'ordre alphabétique )
ok c'est simple
je veux juste que tu verifies que le champs "titre" se trouve dans la table "lien_film" et aussi dans la table "fiches_series" fais attention à la casse et aux "s"
je veux juste que tu verifies que le champs "titre" se trouve dans la table "lien_film" et aussi dans la table "fiches_series" fais attention à la casse et aux "s"
ok
excuse moi
si
ça ne te derange pas tu me prend hors forum pour que nous tirons celà au claire.
sinon
je demandais les structures des deux tables lien_film et fiches_series
car le probleme viens de là. passe moi leurs structures et je te dirais ce qui ne va pas.
excuse moi
si
ça ne te derange pas tu me prend hors forum pour que nous tirons celà au claire.
sinon
je demandais les structures des deux tables lien_film et fiches_series
car le probleme viens de là. passe moi leurs structures et je te dirais ce qui ne va pas.