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

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

Marsh Posté le 10-05-2005 à 11:15:49    

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. <input type='text' name='recherche' size=40 maxlength=100>
  4. //critere
  5.       <select name="recherchek7">
  6.         <option value="production">Par Production</option>
  7.         <option value="artiste">Par Artiste</option>
  8.         <option value="album">Par Album</option>
  9.  <option value="titre">Par Titre</option>
  10.       </select>
  11.       <input type="submit" value="Rechercher">
  12.   </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. //ouverture du tableau qui va afficher le résultat
  7. echo "<table>";
  8. //1ere condition si l'user a fait sa recherche par production
  9. if($_POST['recherchek7'] == 'production')
  10.   {
  11. $sq1 = ("SELECT * filek7 WHERE prod = '$recherchek7'" );
  12. $requete = mysql_query($sq1);
  13.         while ($recherche = mysql_fetch_array($requete))
  14.   {
  15.   print "<tr><td align='center'><font color='#ffffff'>$recherche[prod]</font></td>";
  16.   print "<td align='center'><font color='#ffffff'>$recherche[artist]</font></td>";
  17.   print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  18.   }
  19.  }
  20. //2éme condition si l'user choisi par artiste  
  21. elseif($_POST['recherchek7'] == 'artiste')
  22.   {
  23. $sq1 = ("SELECT * filek7 WHERE artist = '$recherchek7'" );
  24. $requete = mysql_query($sq1);
  25.    while ($recherche = mysql_fetch_array($requete))
  26.   {
  27.   print "<tr><td align='center'><font color='#ffffff'>$recherche[artist]</font></td>";
  28.   print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>";
  29.   print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  30.   }
  31.   }
  32. //3éme condition par album    
  33. elseif($_POST['recherchek7'] == 'album')
  34.   {
  35. $sq1 = ("SELECT * filek7 WHERE album = '$recherchek7'" );
  36. $requete = mysql_query($sq1);
  37.    while ($recherche = mysql_fetch_array($requete))
  38.   {
  39.   print "<tr><td align='center'><font color='#ffffff'>$recherche[artist]</font></td>";
  40.   print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>";
  41.   print "<td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></td><br>";
  42.   }
  43.   }
  44. //4éme condition par titre
  45. elseif($_POST['recherchek7'] == 'titre')
  46.  {
  47.    $sq1 = ("SELECT * filek7 WHERE titre = '$recherchek7'" );
  48.    $requete = mysql_query($sq1);
  49.    while ($recherche = mysql_fetch_array($requete))
  50.   {
  51.   print "<tr><td align='center'><font color='#ffffff'><a href='mp3k7/$recherche[album]/$recherche[titre]'>$recherche[titre]</a></font></font></td>";
  52.   print "<td align='center'><font color='#ffffff'>$recherche[prod]</font></td>";
  53.   print "<td align='center'><font color='#ffffff'>$recherche[artist]</td><br>";
  54.   }
  55.   }
  56. echo "</table>";
  57. mysql_close();
  58. ?>


 
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

Reply

Marsh Posté le 10-05-2005 à 11:15:49   

Reply

Marsh Posté le 10-05-2005 à 11:18:06    

fait un echo sur tes requêtes, je suis pas certain qu'elles soient correctes

Reply

Marsh Posté le 10-05-2005 à 11:26:29    

Au faite, tu as lu la charte avant de poster?

Reply

Marsh Posté le 10-05-2005 à 11:30:56    

Oui quel est le probléme ?

Reply

Marsh Posté le 10-05-2005 à 11:32:07    

[URGENT Erreur SQL]

Reply

Marsh Posté le 10-05-2005 à 11:33:50    

C'est un problème de SQL ou de PHP ?
 
Rappel : PHP <> SQL.
 
Avant de tout bazarder sur ce forum, un minimum de recherche personnelle est indispensable pour espérer une réponse.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 10-05-2005 à 11:42:54    

merci bcp de votre aide je suis bien sur la partie SQL du forum celui ci est bien énoncé dans mon titre dsl d'avoir intégré le terme URGENT mais il ne faut pas chercher la petite bête je demande juste de l'aide et non pas la police.
Je suis encore désolé de l'expression de mon titre, en contre-partie j'accepte toute type de réponse concernant mon probléme merci

Reply

Marsh Posté le 10-05-2005 à 11:45:15    

Citation :

j'accepte toute type de réponse concernant mon probléme merci


 
Je t'ai pas demandé quelque chose dans ma première réponse?
Comment tu veux que je t'aide si tu me donne pas les élèments nécessaires.

Reply

Marsh Posté le 10-05-2005 à 11:54:56    

J'ai rétrécie au maximun mon script soit il ne reste qu'un seul champ de recherche : par production.
 
donc tu voudrais que je fasse echo "$requete";
 
je vien de le faire mais rien n'apparé a part l'erreur suivante :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
 
si sa t'avance d'avance ou demande moi autre chose si ce n'est pas ce que tu souhaitais merci

Reply

Marsh Posté le 10-05-2005 à 11:59:38    

rebalance ton code alors

Reply

Marsh Posté le 10-05-2005 à 11:59:38   

Reply

Marsh Posté le 10-05-2005 à 12:01:05    

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. echo "<table>";
  7. if($_POST['recherchek7'] == 'production')
  8.   {
  9.    $requete = mysql_query("SELECT * filek7 WHERE prod = $recherchek7" );
  10.    while ($row = mysql_fetch_array($requete))
  11.    echo "$row";
  12.   {
  13.   print "<tr><td align='center'><font color='#ffffff'>$row[prod]</font></td>";
  14.   print "<td align='center'><font color='#ffffff'>$row[artist]</font></td>";
  15.   print "<td align='center'><font color='#ffffff'><a href='mp3k7/$row[album]/$row[titre]'>$row[titre]</a></font></td><br>";
  16.   }
  17.  }
  18. echo "</table>";
  19. mysql_close();
  20. ?>


 
Le voici je ne comprends vraiment pas d'ou vien l'erreur :/

Reply

Marsh Posté le 10-05-2005 à 12:31:58    

Ta requete est mal faite

Reply

Marsh Posté le 10-05-2005 à 12:37:29    

Merci mais pourrais tu me donner la soluction stp ? car j'ai du mal a voir comment ?

Reply

Marsh Posté le 10-05-2005 à 12:37:51    

Moi je vois plein de "font-color" qui me piquent les yeux et m'empechent donc de lire le code :D

Reply

Marsh Posté le 10-05-2005 à 12:59:15    

Ok Ok fait comme si il y était pas alors :) mais je voudrais savoir pourquoi ma requete n'est pas bonne ? svp ?

Reply

Marsh Posté le 10-05-2005 à 13:02:26    

Cesarr89 j'ai vraiment besoin de ton aide tu m'as lair d'avoir bien compris mon pb mais si tu peux me donner d'avantage de solution sur ma requete stp !

Reply

Marsh Posté le 10-05-2005 à 13:10:27    

Et si tu testais $requete pour afficher l'erreur avant de commencer à faire des mysql_fetch dedans comme un bourrin ?

Reply

Marsh Posté le 10-05-2005 à 13:44:01    

Friday Monday a écrit :

Et si tu testais $requete pour afficher l'erreur avant de commencer à faire des mysql_fetch dedans comme un bourrin ?


Voilà une idée qu'elle est bonne :)
 
C'est vrai qu'on est un peu aveuglé par toutes ces couleurs mais quand même on voit facilement où se trouve l'erreur... Une erreur de from... euh pardon de forme on dira :) Bref, une erreur de débutant :)  
 
Cherche un peu twist85 et aux yeux la réponse te sautera


Message édité par gfa le 10-05-2005 à 13:44:51
Reply

Marsh Posté le 10-05-2005 à 13:47:44    

Bon alors twist tu trouve ou pas?

Reply

Marsh Posté le 10-05-2005 à 13:55:42    

Mouarf la déchéance du débutant je trouve vraiment pas j'ai testé des truc dy style :
Print "$requete"; mais sa ne m'affiche rien et je n'ai plus l'erreur bien evidement car j'ai supprimer le mysql_fetch....
 
 
Je vous en supplie de mille grâces dite moi ou je me suis planté svp ?

Reply

Marsh Posté le 10-05-2005 à 14:02:43    

Et si tu commençais par lire une doc avant de coder porte nawak ?
http://fr.php.net/mysql_query
 
Je t'ai demandé de tester $requete pas de l'afficher.

Reply

Marsh Posté le 10-05-2005 à 14:03:39    

twist85 a écrit :

Mouarf la déchéance du débutant je trouve vraiment pas j'ai testé des truc dy style :
Print "$requete"; mais sa ne m'affiche rien et je n'ai plus l'erreur bien evidement car j'ai supprimer le mysql_fetch....
 
 
Je vous en supplie de mille grâces dite moi ou je me suis planté svp ?


Salut,
 
Bon, moi j'y connais rien en PHP, donc je vais pas pouvoir t'aider à visualiser ta requête avec des commandes PHP. M'enfin, ce que tu peux faire c'est déjà un bête copier/coller de ton code avec une clause where que tu mets à la main... Tu lances ça dans un outil d'analyse de requête MySQL et tu regardes ce que ton serveur te réponds... Et là... ô miracle tu vas certainement trouver ta solution :)
 
Ah oui, encore une chose... Tu es débutant en SQL aussi? Ce qui serait bien c'est de lire un peu de doc et de faire un ou deux tutos pour bien comprendre comment fonctionne SQL.
 
A+

Reply

Marsh Posté le 10-05-2005 à 14:06:04    

Ma puissance du débutant ne voie pas trop comment tester une viriable sans l'afficher ?
 
mais j'ai vu grace à ton url mon erreur -->" ; " qui se trouve a la fin du query
 
Si tu peux m'expliquer comment testé une variable stp ?merci

Reply

Marsh Posté le 10-05-2005 à 14:08:08    

Euh personne ne l'a vu ce qui me mettrait presque le doute mais... il manque pas un FROM dans ta requête ? :D

Reply

Marsh Posté le 10-05-2005 à 14:13:02    

Merci bcp déjà ça de fait (Big noob je suis :/ )
 
Mais j'ai encore l'erreur suivante qui me pose probléme depuis de nombreux jours :
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
 
A quoi sa correspond ?

Reply

Marsh Posté le 10-05-2005 à 14:13:40    

crazywolf a écrit :

Euh personne ne l'a vu ce qui me mettrait presque le doute mais... il manque pas un FROM dans ta requête ? :D


Aaaaaaaaarghhh fallait pas le dire :non: :pt1cable:  
 
Enfin remarque je l'ai déjà dit... Mais bon c'était un peu plus... Discret:

Citation :


C'est vrai qu'on est un peu aveuglé par toutes ces couleurs mais quand même on voit facilement où se trouve l'erreur... Une erreur de from... euh pardon de forme on dira


 
M'enfin peut-être que ça aidera twist85 finalement :kaola:

Reply

Marsh Posté le 10-05-2005 à 14:14:04    

twist85 a écrit :

Ma puissance du débutant ne voie pas trop comment tester une viriable sans l'afficher ?


 
Tu ne connais pas le mot clé "if" ?  :heink:  
Si c'est n'est pas le cas, lis une doc sur PHP.

Reply

Marsh Posté le 10-05-2005 à 14:14:21    

crazywolf a écrit :

Euh personne ne l'a vu ce qui me mettrait presque le doute mais... il manque pas un FROM dans ta requête ? :D


Chuuut :D

Reply

Marsh Posté le 10-05-2005 à 14:15:33    

ça veut dire que ce que tu passes à mysql_fetch_array n'est pas bon, donc que ta requête est fausse. J'ai la flemme de tester mais si ta requête est juste mais qu'il n'y a pas de réponse ça te met peut-être l'erreur aussi, j'ai oublié.

Reply

Marsh Posté le 10-05-2005 à 14:17:34    

Oups j'avoue avoir zappé les réponses au milieu, j'ai vu qu'il etait encore dessus donc g posté sinon j'aurai laissé courir :)

Reply

Marsh Posté le 10-05-2005 à 14:27:00    

MERCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIII j'ai réussi MERCI BCP  
MERCIIIIIIIIIIIIIIi mille fois merci merci merci merci j'ai trouver mes erreurs merci bcp de vos conseil encore merci milles fois PHP/SQL POwaaaaaaaaa merci pour tous merci encore merci merci merci

Reply

Marsh Posté le 10-05-2005 à 15:02:55    

[:kiki]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 10-05-2005 à 15:05:45    

twist85 a écrit :

MERCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIII j'ai réussi MERCI BCP  
MERCIIIIIIIIIIIIIIi mille fois merci merci merci merci j'ai trouver mes erreurs merci bcp de vos conseil encore merci milles fois PHP/SQL POwaaaaaaaaa merci pour tous merci encore merci merci merci


:jap: Ceux qui t'ont aidé te remercie :jap:  
 
N'oublie pas le tag [Résolu], ça peut servir...
 
Et puis allez, publie nous ton code corrigé comme ça ça pourra aider d'autres personnes qui rencontrent le même problème que toi-
 
A+

Reply

Marsh Posté le 10-05-2005 à 15:33:04    

super les failles d'injections....


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 10-05-2005 à 15:54:55    

jagstang a écrit :

super les failles d'injections....


 
C'est un débutant donc soit tu l'aides soit tu te tais mais tu critiques pas gratuitement. Y'a des failles qui te dérangent ? Eh bah liste les ton post aura au moins cet intérêt (je ne te demande pas de donner les solutions bien sur, pas à toi...).


Message édité par crazywolf le 10-05-2005 à 15:55:30
Reply

Marsh Posté le 10-05-2005 à 15:56:20    

crazywolf a écrit :

C'est un débutant donc soit tu l'aides soit tu te tais mais tu critiques pas gratuitement. Y'a des failles qui te dérangent ? Eh bah liste les ton post aura au moins cet intérêt (je ne te demande pas de donner les solutions bien sur, pas à toi...).


 [:tartalap]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 10-05-2005 à 16:04:12    

http://www.phpsecure.info/v2/article/InjSql.php


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 10-05-2005 à 16:07:01    


 
Bah voilà !! ça c'est du post intéressant, suffit de demander en fait   ;)

Reply

Marsh Posté le 11-05-2005 à 10:08:26    

je vous envoie sa tt de suite

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed