Probleme PHP et Requete

Probleme PHP et Requete - PHP - Programmation

Marsh Posté le 28-04-2004 à 09:38:26    

J?ai un petit problème de requête.
Voilà mon problème : J?aimerais afficher le prénom et le nom dans un select de chaque joueur d?un match précis (ici : Match1). Cependant, il n?y a pas les nom et lesprenoms dans la table Match mais seulement les initiales des joueurs. Et dans la table joueur il y a non seulement les initiales, mais les noms et prénoms que je voudrais afficher dans mon select.
 
Voici ma table :
              Match
-------------------------------                                                
  NomMatch      |   InitialeJoueur              
                |                
     Match1     |    DC, TD              
     Match2     |     CF, GV, BA            
 
 
            Joueur
------------------------------
Prenom        |   Nom          |   Init
              |                |
Dominique     |    Chevru      |    DC
 Thomas       |     Dapin      |    TD    
 
 
Voici ma requête :
$result2 = db_query("select j.prenom, j.nom  
                        from joueur j, match m
  where m.InitialeJoueur like j.Init
  and m.NomMatch = ?Match1?
  order by prenom" );    
echo "<select name=\"joueurs\">";
 
while($r = db_fetch_row($result2))
{ echo "<option>$r[0], $r[1]</option>"; }
echo "</select>
 
Cela ne m'affiche rien.

Reply

Marsh Posté le 28-04-2004 à 09:38:26   

Reply

Marsh Posté le 28-04-2004 à 10:07:43    

Si ce code est vraiment ce que tu as codé, il y a quelques erreurs de syntaxe déjà. A ma connaissance, db_query n'existe pas. tu dois vouloir utiliser mysql_db_query , non?? Ensuite avec un mysql_db_query, le premier argument doit etre l'identifiant de la base de donnée.  Si tu n'as qu'une seule base, ou si tu as selectionné juste avant ta base de données par mysql_db_select(),il est plus simple d'utiliser, mysql_query("requete" ), qui ne necessite pas de préciser l'identifiant de ta base de donnée.


Message édité par force_jaune le 28-04-2004 à 10:09:31
Reply

Marsh Posté le 28-04-2004 à 10:21:35    

En fait il y a une fonction qui retranscrit les mysql_query en db-query.
Considérons donc que les db_query = mysql_query., db_fetch_row=mysql_fetch_row.
 
JE pense que ça doit venir de mon "where", j'ai des doutes dessus.  
Est-ce qu'il faut mettre un mysql_fetch_row ? alors que l'on regarde uniquement que dans une colonne (car c'est pour un match précis)
Qu'en pensez-vous?

Reply

Marsh Posté le 28-04-2004 à 10:36:00    

autant pour moi :)
pour ton erreur, je suis pas trop une star en sql, mais je vais regarder qd meme ;)

Reply

Marsh Posté le 28-04-2004 à 10:45:55    

euh déjà pour la table Match, tu devrais faire ça :
              Match
-------------------------------                                                
  NomMatch      |   InitialeJoueur              
                |                
     Match1     |    DC
     Match1     |    TD
     Match2     |    CF
     Match2     |    GV
     Match2     |    BA
 
c plus rigoureux et plus facile à coder au niveau requete après :)
après c :  

Code :
  1. SELECT nom, prenom FROM match, joueur WHERE joueur.Init = match.InitialeJoueur AND match.NomMatch = 'Match1'


Message édité par titione le 28-04-2004 à 11:33:16
Reply

Marsh Posté le 28-04-2004 à 11:00:06    

Je te remercie mais il faut absolument que je laisse ma table telle qu'elle. Je ne peux pas la changer...
QQ1 aurait une réponse ?

Reply

Marsh Posté le 28-04-2004 à 11:32:17    

Neo-Spy a écrit :

Je te remercie mais il faut absolument que je laisse ma table telle qu'elle. Je ne peux pas la changer...
QQ1 aurait une réponse ?


 
essaye plutôt un: LIKE '%lesInitialesIci%'

Reply

Marsh Posté le 28-04-2004 à 11:38:28    

en changeant par LIKE '%Init%', cela ne m'affiche toujours rien dans mon select ...

Reply

Marsh Posté le 28-04-2004 à 11:48:50    

Neo-Spy a écrit :

en changeant par LIKE '%Init%', cela ne m'affiche toujours rien dans mon select ...


c'est normal, là tu cherche la chaine Init ;)
 
donc, un like '%'+j.Init+'%' devrait résoudre ton problème (si + est bien l'opérateur de concaténation, là j'avoue que j'ai un doute :D)

Reply

Marsh Posté le 28-04-2004 à 13:09:09    

Je viens essayer de remplacer par '%'+j.Init+'%'  mais cela ne m'affiche toujours rien dans mon select...
 
Est-ce que ma requete est bonne ?
Peut etre que quelqu'un aurait le temps de tester chez lui (les tables ne sont pas grandes) et me dire ainsi sa requete ?
JE vous remercie d'avance  :)


Message édité par neo-spy le 28-04-2004 à 13:45:33
Reply

Marsh Posté le 28-04-2004 à 13:09:09   

Reply

Marsh Posté le 28-04-2004 à 14:37:18    

Je pensais, est-ce qu'il n'y a pas quelque chose à faire sur les tables (dépendances de références, contraintes etc... ?)
Merci de m'éclairer

Reply

Sujets relatifs:

Leave a Replay

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