Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1499 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  moteur de recherche, case à cocher

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

moteur de recherche, case à cocher

n°1771326
godmax
Posté le 08-08-2008 à 17:04:07  profilanswer
 

Bonjour à tous,
 
Alors voilà j'expose mon problème,
 
Je voudrais un moteur de recherche interne par case à cocher,
Là j'ai + ou - pas de problème car il va bien chercher dans les différents champs si plusieurs case on été cochées.
 
Mais dans mon exemple qui va suivre sa ne fais pas ce que je voudrais,
 
Si je coche la case 176*220 et la case fr
je voulais que sa m'affiche les résultats en français et d'une résolution uniquement de 176*220 mais il m'affiche rien, même pas le message d'erreur si il n'y aurais eu aucun résultats.
 
Voilà le code que j'ai pour l'instant
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3. <head>
  4. <title></title>
  5. <link href="style.css" rel="stylesheet" type="text/css">
  6. <div id="all">
  7. <div id="banniere">
  8. <div id="pub">
  9. <script type="text/javascript"><!--
  10. google_ad_client = "pub-8258802225837101";
  11. google_ad_width = 468;
  12. google_ad_height = 60;
  13. google_ad_format = "468x60_as";
  14. google_ad_type = "text_image";
  15. google_ad_channel = "";
  16. google_color_border = "FFFFFF";
  17. google_color_bg = "FFFFFF";
  18. google_color_link = "008000";
  19. google_color_text = "000000";
  20. google_color_url = "008000";
  21. //-->
  22. </script>
  23. <script type="text/javascript"
  24. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  25. </script>
  26. </div>
  27. </div>
  28. <div id="luigi">
  29. </div>
  30. <div id="menu">
  31. </div>
  32. <div id="contenu">
  33.  <ul id="menu_horizontal">
  34.     <div id="menuitem">
  35.    <li class="bouton_gauche"><a href='index.php'>Accueil</a>
  36.   </li>
  37.    <li class="bouton_gauche">
  38.    <a href='http://zone-mobiles.leforum.eu/'>Forum</a>
  39.   </li>
  40.    <li class="bouton_gauche">
  41.    <a href='jeux.php'>Téléchargements</a>
  42.   </li>
  43.   <li class="bouton_droit">
  44.    <a href='rechercher.php'>Recherche</a>
  45.   </li>
  46.    <li class="bouton_droit">
  47.    <a href='inscription.php'>Inscription</a>
  48.   </li>
  49.  </div></ul>
  50. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  51. <script type="text/javascript">
  52. var page_courante=1;
  53. var nb_pages=1;
  54. function pagePrecedente() {
  55.    if (page_courante==1) {
  56.       alert("Vous êtes déjà sur la première page !" );
  57.    } else {
  58.       affichePage(page_courante-1);
  59.    }
  60. }
  61. function pageSuivante() {
  62.    if (page_courante==nbpages) {
  63.       alert("Vous êtes déjà sur la dernière page !" );
  64.    } else {
  65.       affichePage(page_courante+1);
  66.    }
  67. }
  68. function affichePage (page){
  69.    document.getElementById("page"+page_courante).style.display = "none";
  70.    document.getElementById("lienpage"+page_courante).style.fontWeight = "normal";
  71.    document.getElementById("page"+page).style.display = "block";
  72.    document.getElementById("lienpage"+page).style.fontWeight = "bold";
  73.    page_courante=page;
  74. }
  75. </script>
  76. </head>
  77. <body>
  78. <div id="main">
  79. <?php
  80. if(isset($_POST['requete' and 'requetelangue']) && $_POST['requete' or 'requetelangue'] != NULL)
  81. {
  82. mysql_connect('sql.olympe-network.com','essaye12','*****');
  83. mysql_select_db('essaye12');
  84. $requete = htmlspecialchars($_POST['requete']);
  85. $requetelangue = htmlspecialchars($_POST['requetelangue']);
  86. $query = mysql_query("SELECT * FROM jeux WHERE taille LIKE '%$requete%' AND type LIKE '%$requetelangue%" ) or die (mysql_error());
  87. $nb_resultats = mysql_num_rows($query);
  88. if($nb_resultats != 0)
  89. {
  90. ?>
  91. <h3>Résultats de votre recherche.</h3>
  92. <p>Nous avons trouvé <?php echo $nb_resultats;
  93. if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; }
  94. ?>
  95. dans notre base de données. Voici les fonctions que nous avons trouvé :<br/>
  96. <br/>
  97. <?php
  98. while($donnees = mysql_fetch_array($query))
  99. {
  100. ?>
  101. <a href="fonction.php?id=<?php echo $donnees['id']; ?>"><?php echo $donnees['taille']; ?></a><br/>
  102. <?php
  103. }
  104. ?><br/>
  105. <br/>
  106. <a href="rechercher.php">Faire une nouvelle recherche</a></p>
  107. <?php
  108. }
  109. else
  110. {
  111. ?>
  112. <h3>Pas de résultats</h3>
  113. <p>Nous n'avons trouvé aucun résultats pour votre requête "<?php echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
  114. <?php
  115. }
  116. mysql_close();
  117. }
  118. else
  119. {
  120. ?><div id="recherche">
  121. <p>recherche</p>
  122. <form action="rechercher.php" method="Post">
  123. <input type="checkbox" value="320*240" name="requete" /> 320*240
  124. <input type="checkbox" value="220*176" name="requete" /> 176*220
  125. <input type="checkbox" value="fr" name="requetelangue" /> fr
  126. <input type="submit" value="Ok">
  127. </form></div>
  128. <?php
  129. }
  130. ?>


 
le système qui ne fonctionne pas est à cette adresse http://essaye12.olympe-network.com/rechercher.php
 
 Voilà, si j'ai pas été assez complet ou clair dites le.


Message édité par godmax le 08-08-2008 à 17:05:34
mood
Publicité
Posté le 08-08-2008 à 17:04:07  profilanswer
 

n°1771483
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 09-08-2008 à 12:00:10  profilanswer
 

c'est quoi ça :  

Citation :


(isset($_POST['requete' and 'requetelangue'])


[:le kneu]
 
essaie plutôt

Code :
  1. if ((isset($_POST['requete'])) && (isset($_POST['requetelangue'])))
  2. {
  3. ...
  4. }


 
EDIT : pour tester qu'ils ne soient pas nuls non plus :

Code :
  1. $requete = (isset($_POST['requete'])) ? $_POST['requete'] : '';
  2. $reqlangue = (isset($_POST['requetelangue'])) ? $_POST['requetelangue'] : '';
  3. if (($requete != '') && ($reqlangue != ''))
  4. {
  5. ...
  6. }


 
Et c'est aussi là que tu dois penser à sécuriser tes rentrées ...
par exemple,  
$requete = (isset($_POST['requete'])) ? trim(sprintf("%s", $_POST['requete'])) : '';

Message cité 1 fois
Message édité par NewsletTux le 09-08-2008 à 12:03:39

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1771495
Profil sup​primé
Posté le 09-08-2008 à 13:49:36  answer
 

NewsletTux a écrit :

c'est quoi ça :  
 
EDIT : pour tester qu'ils ne soient pas nuls non plus :

Code :
  1. $requete = (isset($_POST['requete'])) ? $_POST['requete'] : '';
  2. $reqlangue = (isset($_POST['requetelangue'])) ? $_POST['requetelangue'] : '';
  3. if (($requete != '') && ($reqlangue != ''))
  4. {
  5. ...
  6. }


 
Et c'est aussi là que tu dois penser à sécuriser tes rentrées ...
par exemple,  
$requete = (isset($_POST['requete'])) ? trim(sprintf("%s", $_POST['requete'])) : '';


 
 
 
 [:noxauror]  

Code :
  1. <?php
  2. $requ=trim($_POST['requete']);
  3. $reql=trim($_POST['requetelangue']);
  4. if(!empty($requ) && !empty($reql))
  5. {
  6.    //...
  7. }
  8. ?>


 [:doc petrus]  

n°1771585
godmax
Posté le 09-08-2008 à 19:19:02  profilanswer
 

merci je venais juste voir si on m'avais répondu car j'ai du monde cher moi.  
Par contre, y a des trucs que j'ai jamais vu dans ce que vous me donner,  
qu-est ce que trim sprintf et le ? juste avant.
J'ai juste lu le début d'un tutos sur le C avec les printf et scanf, sa a avoir avec sa ?
 
merci d'avance.

n°1771588
esox_ch
Posté le 09-08-2008 à 19:28:29  profilanswer
 

Non, ça à voir avec ça http://www.php.net/sprintf
le ! devant signifie (comme en C) "le contraire boolean" :
 
!true => false

n°1771589
Profil sup​primé
Posté le 09-08-2008 à 19:30:44  answer
 

trim permet de supprimer les caractères blancs en début de la chaîne passée en paramètre. sprintf permet d'éviter d'écrasé la variable $_POST['requete'] par le résultat de trim (pour garder l'origine).
Le point d'interrogation signifie qu'il s'agit ici d'une équation ternaire.
 
TRIM => http://fr.php.net/trim
SPRINTF => http://fr.php.net/sprintf
CONDITION TERNAIRE => http://fr3.php.net/operators.comparison à opérateur ternaire

n°1771591
Profil sup​primé
Posté le 09-08-2008 à 19:32:30  answer
 

esox_ch a écrit :


le ! devant signifie (comme en C) "le contraire boolean" :
 
!true => false


 
C'est pô ce qu'il a demandé  :sleep:  

n°1771598
godmax
Posté le 09-08-2008 à 20:13:27  profilanswer
 

Merci de votre aide mais sa ne fonctionne toujours pas. celle de NewsletTux n'a toujours aucun effet, et celle que lucas a mit si je coche une seul case, rien du tout, et si j'en coche 2 j'ai ceci You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%fr%' at line 1
 
je reposte le code peut-être que c'est une erreur de ma part car j'ai du mal a comprendre certaine chose.
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3. <head>
  4. <title></title>
  5. <link href="style.css" rel="stylesheet" type="text/css">
  6. <div id="all">
  7. <div id="banniere">
  8. <div id="pub">
  9. <script type="text/javascript"><!--
  10. google_ad_client = "pub-8258802225837101";
  11. google_ad_width = 468;
  12. google_ad_height = 60;
  13. google_ad_format = "468x60_as";
  14. google_ad_type = "text_image";
  15. google_ad_channel = "";
  16. google_color_border = "FFFFFF";
  17. google_color_bg = "FFFFFF";
  18. google_color_link = "008000";
  19. google_color_text = "000000";
  20. google_color_url = "008000";
  21. //-->
  22. </script>
  23. <script type="text/javascript"
  24. src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  25. </script>
  26. </div>
  27. </div>
  28. <div id="luigi">
  29. </div>
  30. <div id="menu">
  31. </div>
  32. <div id="contenu">
  33.  <ul id="menu_horizontal">
  34.     <div id="menuitem">
  35.    <li class="bouton_gauche"><a href='index.php'>Accueil</a>
  36.   </li>
  37.    <li class="bouton_gauche">
  38.    <a href='http://zone-mobiles.leforum.eu/'>Forum</a>
  39.   </li>
  40.    <li class="bouton_gauche">
  41.    <a href='jeux.php'>Téléchargements</a>
  42.   </li>
  43.   <li class="bouton_droit">
  44.    <a href='rechercher.php'>Recherche</a>
  45.   </li>
  46.    <li class="bouton_droit">
  47.    <a href='inscription.php'>Inscription</a>
  48.   </li>
  49.  </div></ul>
  50. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  51. <script type="text/javascript">
  52. var page_courante=1;
  53. var nb_pages=1;
  54. function pagePrecedente() {
  55.    if (page_courante==1) {
  56.       alert("Vous êtes déjà sur la première page !" );
  57.    } else {
  58.       affichePage(page_courante-1);
  59.    }
  60. }
  61. function pageSuivante() {
  62.    if (page_courante==nbpages) {
  63.       alert("Vous êtes déjà sur la dernière page !" );
  64.    } else {
  65.       affichePage(page_courante+1);
  66.    }
  67. }
  68. function affichePage (page){
  69.    document.getElementById("page"+page_courante).style.display = "none";
  70.    document.getElementById("lienpage"+page_courante).style.fontWeight = "normal";
  71.    document.getElementById("page"+page).style.display = "block";
  72.    document.getElementById("lienpage"+page).style.fontWeight = "bold";
  73.    page_courante=page;
  74. }
  75. </script>
  76. </head>
  77. <body>
  78. <div id="main">
  79. <?php
  80. $requete=trim($_POST['requete']);
  81. $requetelangue=trim($_POST['requetelangue']);
  82. if(!empty($requete) && !empty($requetelangue))
  83. {
  84. mysql_connect('sql.olympe-network.com','essaye12','*****');
  85. mysql_select_db('essaye12');
  86. $query = mysql_query("SELECT * FROM jeux WHERE taille LIKE '%$requete%' AND type LIKE '%$requetelangue%" ) or die (mysql_error());
  87. $nb_resultats = mysql_num_rows($query);
  88. if($nb_resultats != 0)
  89. {
  90. ?>
  91. <h3>Résultats de votre recherche.</h3>
  92. <p>Nous avons trouvé <?php echo $nb_resultats;
  93. if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; }
  94. ?>
  95. dans notre base de données. Voici les fonctions que nous avons trouvé :<br/>
  96. <br/>
  97. <?php
  98. while($donnees = mysql_fetch_array($query))
  99. {
  100. ?>
  101. <a href="fonction.php?id=<?php echo $donnees['id']; ?>"><?php echo $donnees['taille']; ?></a><br/>
  102. <?php
  103. }
  104. ?><br/>
  105. <br/>
  106. <a href="rechercher.php">Faire une nouvelle recherche</a></p>
  107. <?php
  108. }
  109. else
  110. {
  111. ?>
  112. <h3>Pas de résultats</h3>
  113. <p>Nous n'avons trouvé aucun résultats pour votre requête "<?php echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
  114. <?php
  115. }
  116. mysql_close();
  117. }
  118. else
  119. {
  120. ?><div id="recherche">
  121. <p>recherche</p>
  122. <form action="rechercher.php" method="Post">
  123. <input type="checkbox" value="320*240" name="requete" /> 320*240
  124. <input type="checkbox" value="220*176" name="requete" /> 176*220
  125. <input type="checkbox" value="fr" name="requetelangue" /> fr
  126. <input type="submit" value="Ok">
  127. </form></div>
  128. <?php
  129. }
  130. ?>


 
Re-merci

n°1771646
Profil sup​primé
Posté le 10-08-2008 à 09:54:51  answer
 

Code :
  1. <?php
  2. $requ=trim($_POST['requete']);
  3. $reql=trim($_POST['requetelangue']);
  4. if(!empty($requ) || !empty($reql))
  5. {
  6.    //...
  7. }
  8. ?>


 
et Ligne 101 :
 

Code :
  1. $query = mysql_query("SELECT * FROM jeux WHERE taille LIKE '%$requete%' AND type LIKE '%$requetelangue%' " ) or die (mysql_error());

n°1771702
godmax
Posté le 10-08-2008 à 16:40:09  profilanswer
 

Voilà voilà sa à l'air de fonctionner. Merci à tous et en particulier luc@s.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  moteur de recherche, case à cocher

 

Sujets relatifs
[Excel]Aide sur fonctions de rechercheLivre d'or - Recherche d'un anti spam efficace
Recherche dans un fichier binaireRecherche un développeur web ASP
batch de recherche / suppressionRecherche/suppression fichier batch
[RESOLU] Recherche de Flux RSS[Resolu] asp.net/C#/SQl server2005 affichage resultats recherche
condition where : recherche par mot clé[SQL server] Recherche sur champ calculé
Plus de sujets relatifs à : moteur de recherche, case à cocher


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR