Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

18 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[URGENT Erreur SQL] Moteur de recherche PHP/SQL via formulaire HTML

 
n°12978
twist85
Profil : Jeune recrue
Posté le 10-05-2005 à 11:27:53  profilanswer
 

Bonjour à toutes et à tous et je vous remercie d'avance pour vos réponse.
 
Voila je vous expose mon pb: via un formulaire HTML qui se présente de la forme suivante :
 

Code :
  1. <form action="recherchek7.php" method="post">
  2. //l'user tape ce qu'il souhaite rechercher et choisi son critére
  3.    
  4.      <input type='text' name='recherche' size=40 maxlength=100>
  5.    
  6.      //critere
  7.    
  8.            <select name="recherchek7">
  9.              <option value="production">Par Production</option>
  10.              <option value="artiste">Par Artiste</option>
  11.              <option value="album">Par Album</option>
  12.             <option value="titre">Par Titre</option>
  13.           </select>
  14.  
  15.           <input type="submit" value="Rechercher">
  16.  
  17.       </form>


 
Et voici maintenant le script PHP/SQL qui traite ces informations :
 

Code :
  1. * <?php
  2.     * $recherchek7 = $_POST['recherche'];
  3.     * // on se connecte à notre base
  4.     *                 $connexion = mysql_connect("localhost","root","" );
  5.     *                 mysql_select_db("Prodk7",$connexion);
  6.     *               
  7.     * //ouverture du tableau qui va afficher le résultat
  8.     *
  9.     * echo "<table>";
  10.     *
  11.     * //1ere condition si l'user a fait sa recherche par production
  12.     *
  13.     *     if($_POST['recherchek7'] == 'production')
  14.     *             {
  15.     *           
  16.     *     $sq1 = ("SELECT * filek7 WHERE prod = '$recherchek7'" );
  17.     *     $requete = mysql_query($sq1);
  18.     *
  19.     *         while ($recherche = mysql_fetch_array($requete))
  20.     *               
  21.     *             {
  22.     *           
  23.              print "<tr><td align='center'><font color='#ffffff'>$recherche[prod]</font></td>"; 
  24.     *             print "<td align='center'><font color='#ffffff'>$recherche[artist]</font></td>"; 
  25.     *             print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  26.     *           
  27.     *             }
  28.     *         }
  29.     *
  30.     * //2éme condition si l'user choisi par artiste   
  31.     *   
  32.     *     elseif($_POST['recherchek7'] == 'artiste') 
  33.     *             {
  34.     *           
  35.     *
  36.     * $sq1 = ("SELECT * filek7 WHERE artist = '$recherchek7'" );
  37.     * $requete = mysql_query($sq1);
  38.     *
  39.     *                 while ($recherche = mysql_fetch_array($requete))
  40.     *               
  41.     *             {
  42.     *           
  43.     *             print "<tr><td align='center'><font color='#ffffff'>$recherche[artist]</font></td>"; 
  44.     *             print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>"; 
  45.     *             print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  46.     *           
  47.     *             } 
  48.     *             }
  49.     *
  50.     * //3éme condition par album             
  51.     *
  52.     * elseif($_POST['recherchek7'] == 'album') 
  53.     *             {
  54.     *           
  55.     *
  56.     * $sq1 = ("SELECT * filek7 WHERE album = '$recherchek7'" );
  57.     * $requete = mysql_query($sq1);
  58.     *
  59.     *                 while ($recherche = mysql_fetch_array($requete))
  60.     *               
  61.     *             {
  62.     *           
  63.     *             print "<tr><td align='center'><font color='#ffffff'>$recherche[artist]</font></td>"; 
  64.     *             print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>"; 
  65.     *             print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  66.     *           
  67.     *             } 
  68.     *             }
  69.     *       
  70.     * //4éme condition par titre
  71.     *   
  72.     * elseif($_POST['recherchek7'] == 'titre')
  73.     *         {
  74.     *           
  75.     *                 $sq1 = ("SELECT * filek7 WHERE titre = '$recherchek7'" );
  76.     *                 $requete = mysql_query($sq1);
  77.     *
  78.     *                 while ($recherche = mysql_fetch_array($requete))
  79.     *               
  80.     *             {
  81.     *           
  82.     *             print "<tr><td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></font></td>"; 
  83.     *             print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>"; 
  84.     *             print "<td align='center'><font color='#ffffff'>$recherche[artist]</td><br>";
  85.     *           
  86.     *             } 
  87.     *             }
  88.     *                           
  89.     * echo "</table>";
  90.     * mysql_close();
  91.     * ?>


 
 
Voila donc si vous avez compris il s'agit seulement d'un copier coller pour chaque condition en modifiant seulement ce qui est nécessaire
 
mais le probleme qui me pose c'est que lors de l'affichage du résultat l'erreur apparait pour les lignes suivantes :
 

Code :
  1. * $sq1 = ("SELECT * filek7 WHERE prod = '$recherchek7'" );
  2.     * $sq1 = ("SELECT * filek7 WHERE artist = '$recherchek7'" );
  3.     * $sq1 = ("SELECT * filek7 WHERE album = '$recherchek7'" );
  4.     * $sq1 = ("SELECT * filek7 WHERE titre = '$recherchek7'" );


 
 
voici l'erreur :  
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\padminprod\k7\recherchek7.php on line 34.
 
 
J'ai vérifié ma table mes données sont bien enregistrés ainsi que les morceaux, et toutes les autres informations.
 
Je vous remercie si vous arrivez à savoir ou se trouve mon erreur svp merci beaucoup.
Olivier

n°12981
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 10-05-2005 à 16:44:30  profilanswer
 

Dans ton dernier encadré de code, je ne vois pas les FROM (SELECT * FROM maTable WHERE ...).
 
De plus, à la ligne 39 de ton 2ème encadré, tu ne testes pas l'état null de $requete; c'est un tort!

Code :
  1. if (!is_null($requete)) {
  2.     while ($recherche = mysql_fetch_array($requete)) {
  3.         [...]
  4.     }
  5. }

n°13022
pote
Profil : Membre
Posté le 12-05-2005 à 10:51:24  profilanswer
 

+1 avec ollone.  
Tu as oublié les FROM. Donc il ne peut pas faire de select * s'il ne connais pas la table.


Aller à :
Ajouter une réponse