requete mysql qui me donne une page blache...

requete mysql qui me donne une page blache... - PHP - Programmation

Marsh Posté le 24-05-2005 à 07:32:22    

bonjour,
j'ai fait un petit moteur de recherche pour ma base de donnée (en test pour le moment...) mais il ne marche pas, et je comprend pas (ca fait un bon bout de temps que je suis dessu...)
 
Ma page du formulaire :
 

Code :
  1. <body>
  2. <form ACTION="http://localhost/database_mp3/search-server.php" METHOD='GET'>
  3. Artiste
  4. <SELECT NAME='choix' SIZE=2>
  5. <OPTION VALUE='Bad Religion'>Bad Religion
  6. <OPTION VALUE='Rammstein'>Rammstein
  7. </SELECT>
  8. <INPUT TYPE='SUBMIT' VALUE='Valider'>
  9. </form>
  10. </body>


 
Mon script php "search-server.php" :
 

Code :
  1. <body>
  2. <?php
  3. $artiste = $_GET['choix'];
  4. require(connexion_mp3base.php);
  5. $connexion = mysql_connect(SERVER, NAME, PASS);
  6. if (!$connexion)
  7. {
  8. echo "Impossible de se connecter au server MySQL\n";
  9. }
  10. else
  11. {
  12. echo "Connecté à la base de connées, recherche en cours...";
  13. }
  14. mysql_select_db(mp3, $connexion);
  15. $request = 'SELECT artist FROM mp3base WHERE artist LIKE '$artiste' ';
  16. $result = mysql_query($request) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  17. while($artiste = mysql_fetch_assoc($request))
  18.     {
  19.     echo '<b>'.$artiste['artist'].' '.$artiste['album'].'</b> ('.$artiste['title'].')';
  20.     }
  21. mysql_close();
  22. ?>
  23. </body>


 
evidement, mon fichier contient les onformations pour se connecter à la base...
Ma base s'appelle "mp3" et la table s'appelle "mp3base".
Le résultat m'affiche une page blanche, je comprend pas, tout semble correct non ?


Message édité par stupidduck le 24-05-2005 à 07:36:17

---------------
If you can't find a way, create one!
Reply

Marsh Posté le 24-05-2005 à 07:32:22   

Reply

Marsh Posté le 24-05-2005 à 07:35:45    

dans ton mysql_fetch_assoc ... c'est $result pas $request.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-05-2005 à 07:37:48    

while($artiste = mysql_fetch_assoc($request))
 
-->
 
while($artiste = mysql_fetch_assoc($result))
 
 :sarcastic:
 
Edit : grilled de bon matin  :ouch:


Message édité par afbilou le 24-05-2005 à 07:38:20
Reply

Marsh Posté le 24-05-2005 à 07:40:30    

De plus ton code entre mysql_select() jusk'a mysql_close() doit se trouver dans ton else ... sinon ton if/else n'a que peu d'interet !


Message édité par afbilou le 24-05-2005 à 07:41:10
Reply

Marsh Posté le 24-05-2005 à 07:41:36    

esox_ch a écrit :

dans ton mysql_fetch_assoc ... c'est $result pas $request.


 
 :ouch:  j'avais pas fait attention, merci :jap:
 
mais le probleme ne doit pas venir de la car rien n'a changé, j'ai toujours une page blanche...
je viens de tester en donnant des valeurs erronées pour la connexion à la base de données, et je n'ai meme pas le message d'erreur (cfr le "if ($!connexion))... ce n'est pas normal du tout ca !
 
pour info, mon "connexion_mp3base.php" ressemble à ca :
 

Code :
  1. <?
  2. define ('NAME', "xxx" );
  3. define ('PASS', "xxx" );
  4. define ('SERVER', "xxx" );
  5. define ('DB', "xxx" );
  6. ?>


---------------
If you can't find a way, create one!
Reply

Marsh Posté le 24-05-2005 à 07:43:47    

Code :
  1. $request = 'SELECT artist FROM mp3base WHERE artist LIKE '$artiste' ';


 
-->
 

Code :
  1. $request = "SELECT artist FROM mp3base WHERE artist LIKE '".$artiste."'";


Message édité par afbilou le 24-05-2005 à 07:46:50
Reply

Marsh Posté le 24-05-2005 à 07:57:08    

j'ai trouvé ! c'est dans le "require" qu'il y avait un stress, j'ai oublié les "" .... merci pour les autres erreures :)


---------------
If you can't find a way, create one!
Reply

Marsh Posté le 24-05-2005 à 08:04:44    

afbilou a écrit :

Code :
  1. $request = 'SELECT artist FROM mp3base WHERE artist LIKE '$artiste' ';


 
-->
 

Code :
  1. $request = "SELECT artist FROM mp3base WHERE artist LIKE '".$artiste."'";



Mais pourquoi tu remplace les simple quote par des doubles :??:  :??:  
 
->

$request = 'SELECT artist FROM mp3base WHERE artist LIKE \'' . addslashes($artiste) . '\'';

Reply

Marsh Posté le 24-05-2005 à 08:10:39    

En fait j'avais ecris comme ca au debut :
 
$request = 'SELECT artist FROM mp3base WHERE artist LIKE \'' . addslashes($artiste) . '\'';
 
(Sans balise <code> )
 
Comme les quotes etaient serrees et qu'on pouvait les confondre avec des doubles, j'ai mis des doubles ... et puis ... dans la foulée j'ai mis un <code> :p

Reply

Marsh Posté le 24-05-2005 à 10:00:08    

Pourquoi faire un like alors que mettre le champ en fulltext serait plus rapide?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-05-2005 à 10:00:08   

Reply

Marsh Posté le 24-05-2005 à 10:57:11    

esox_ch a écrit :

Pourquoi faire un like alors que mettre le champ en fulltext serait plus rapide?


 
heu, je suis encore un newbie :d j'ai pas bien saisi ce que t'a voulu dire :d


---------------
If you can't find a way, create one!
Reply

Sujets relatifs:

Leave a Replay

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