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

  FORUM HardWare.fr
  Programmation
  PHP

  Pb script PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb script PHP

n°1816050
manuura
Posté le 24-11-2008 à 18:51:17  profilanswer
 

Bonjour,
 
je suis débutant en PHP et j'ai un petit pb concernant un script permettant d'afficher une liste d'artistes en fonction de la requête du visiteur. J'ai donc récupéré un bout de code ressemblant à ça :
 

Code :
  1. <?
  2. $liste = array("Abba", "Barbra Streisand", "Calogero", "Django Reinhardt", "Edith Piaf", "Fiona Apple", "Geri Halliwell", "Hugues Aufray", "Iggy Pop", "James Brown", "Kate Bush", "Leonard Cohen" ); //etc...
  3. $saisie = $_REQUEST['artistes'];
  4. if ($saisie != "" ) {
  5. echo "<ul>";
  6. foreach($liste as $artiste) {
  7.  if (substr($artiste,0,strlen($saisie)) == strtolower(stripslashes($saisie))) {
  8.   echo "<li>".($artiste)."</li>";
  9.  }
  10. }
  11. echo "</ul>";
  12. }
  13. ?>


 
Ainsi, lorsque l'internaute tape uniquement la letrre A dans mon formulaire, ça lui retourne automatiquement "Abba".
 
Jusqu'ici tout est OK mais les problèmes arrivent lorsque je tente de passer par ma base de données. J'ai adapté le code comme suis mais ça ne fonctionne pas :
 

Code :
  1. <?
  2. include("connection.inc.php" );
  3. $saisie = $_REQUEST['artistes'];
  4. if ($saisie != "" ) {
  5. echo "<ul>\n";
  6. $sql = "SELECT id, nom FROM artistes ORDER BY nom";
  7. $resultat = mysql_query($sql);
  8. while($tab = mysql_fetch_array ($resultat)) {
  9.  $artiste = $tab['nom'];
  10.  if (substr($artiste,0,strlen($saisie)) == strtolower(stripslashes($saisie))) {
  11.   echo "<li>".($artiste)."</li>\n";
  12.  }
  13. }
  14. echo "</ul>\n";
  15. }
  16. ?>


 
Si quelqu'un avait l'extrême amabilité de me dire où j'ai planté, je lui serait fort reconnaissant ;)
 
Merci d'avance.

mood
Publicité
Posté le 24-11-2008 à 18:51:17  profilanswer
 

n°1816054
flo850
moi je
Posté le 24-11-2008 à 18:59:03  profilanswer
 

plus propre que de recuperer tous les artiste , filtrer directement dans la requete sql

Code :
  1. $saisie = mysql_real_escape_string($_REQUEST['artistes'] ); //pour eviter qu'une requete bien construite n'explose ta base de données
  2. $sql = "SELECT id, nom FROM artistes WHERE nom LIKE '$saisie%' ORDER BY nom"; //LIKE 'pwet%' retourne les resultats qui commencent par pwet  , LIKE '%pwet' ceux qui terminent pas pwet, et '%pwet%' ceux qui contiennent pwet
  3. while($tab = mysql_fetch_array ($resultat)) {
  4. $artiste = $tab['nom'];
  5.     echo "<li>".($artiste)."</li>\n";
  6. }


---------------

n°1816062
manuura
Posté le 24-11-2008 à 19:10:30  profilanswer
 

Ca marche !
 
effectivement c'est plus propre de filtrer au niveau de la base plutôt que l'imbroglio de manip' de chaînes de caractères.
 
Merci Flo  :)  :)  :)  


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

  Pb script PHP

 

Sujets relatifs
Le répertoire courant de mon script perl est " / " ?!insertion de script pour livre d'or
[PHP] Problème : Réception de mail[Eclipse] Pb connection source avec eclipse pour javax.crypto
[Php/Mysql]Effacer ligne d'un tableau de donnéescherche script
[PHP ET SEO] comment éviter un duplicate content[PHP] Conversion string to float... mais ca marche pas !
recherche Script php de pari sportif .Pb avec boucles imbriquées pour controle d'un formulaire
Plus de sujets relatifs à : Pb script PHP


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