PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 30-04-2011 09:57:14

aunisien
Membre
Inscription : 30-04-2011
Messages : 6

Afficher 2 fois le même champ mais avec des valeurs différentes ?

Bonjour,

je débute en voulant une petite base pour stocker l'historique des résultats dans un premier temps de mon équipe de rugby, j'ai don cpour l'instant 2 tables, la table 1 qui contient le nom du club et un id propre à chaque équipe et une seconde table, la table 2 avec les résultats de chaque journée contenant l'id de mon équipe correspondant à celle de ma table 1.

Mon soucis est que je n'arrive pas à concevoir la requête qui va me faire afficher le résultat d'une journée par exemple car je dois récupérer 2 fois mon id du club pour l'équipe visiteuse et l'équipe locale dans ma table 1, je ne suis pas sûr d'être très clair...

ma table 1: clb

clb_id, clb_nom, clb_nom_court, clb_logo

ma table 2: mtchs

mtch_id, id_saison, clb_id1, clb_id2, mtch_sc1, mtch_sc2

Merci pour vos réponse, j'ai essayais les jointure mais cela m'affiche toujours le même nom pour l'équipe locale et l'équipe visiteuse.

Hors ligne

#2 30-04-2011 11:27:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Saluton,
Mettre la table mtchs en double jointure avec la table clb, quelque chose comme ça

SELECT mtch_id, id_saison,
       mtch_sc1, c1.clb_nom AS c1nom, c1.clb_nom_court AS c1nomcourt, c1.clb_logo AS c1.logo,
       mtch_sc2, c2.clb_nom AS c2nom, c2.clb_nom_court AS c2nomcourt, c2.clb_logo AS c2.logo
FROM mtchs
INNER JOIN clb AS c1 ON c1.clb_id= mtchs.clb_id1
INNER JOIN clb AS c2 ON c2.clb_id= mtchs.clb_id2

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 30-04-2011 22:05:49

aunisien
Membre
Inscription : 30-04-2011
Messages : 6

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Merci pour la réponse rapide !

J'ai testé la requête mais ça me renvoie:

Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mtch_id, id_saison, mtch_sc1, c1.clb_nom AS c1nom, mtch_sc2,c2.clb_nom AS' at line 1

Hors ligne

#4 01-05-2011 07:26:23

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Il faudrait nous faire voir la requête soumise dans son ensemble, pas seulement le message d'erreur.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 01-05-2011 09:22:48

aunisien
Membre
Inscription : 30-04-2011
Messages : 6

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Voici le code complet:

<html>
<title>test</title>
<body>
<?
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = 'root';
$db = 'stats';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements

$select = 'mtch_id,mtch_sc1,c1.clb_nom AS c1nom,mtch_sc2,c2.clb_nom AS c2nom FROM mtchs INNER JOIN clb AS c1 ON c1.clb_id=mtchs.clb_id1 INNER JOIN clb AS c2 ON c2.clb_id=mtchs.clb_id2';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Eq1</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Score1</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Score2</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Eq2</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Date</u></b></td>' ;
echo '</tr>'."\n";

while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["0"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["1"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["2"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["3"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["4"].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?>
</body>
</html>

Hors ligne

#6 01-05-2011 09:26:31

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Ah bah voui comme ça, ça ne peut pas le faire.
Ta requête doit commencer par la commande SELECT


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 01-05-2011 09:55:31

aunisien
Membre
Inscription : 30-04-2011
Messages : 6

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Oh la la, honte sur moi, il était tard hier soir pourtant je l'ai relu mais je ne l'ai pas vu désolé ... sad

Merci beaucoup ça fonctionne forcément mieux !

Dernière modification par aunisien (01-05-2011 11:31:19)

Hors ligne

#8 27-04-2012 13:19:29

aunisien
Membre
Inscription : 30-04-2011
Messages : 6

Re : Afficher 2 fois le même champ mais avec des valeurs différentes ?

Bonjour, me revoila avec ma requête ... je me bats pour ne faire afficher les résultats que pour les résultats d'un club que je reçois par un formulaire mais ça ne fonctionne j'ai du mal avec ce inner...

Je veux donc conserver la même requête:

$select = 'mtch_id,mtch_sc1,c1.clb_nom AS c1nom,mtch_sc2,c2.clb_nom AS c2nom FROM mtchs INNER JOIN clb AS c1 ON c1.clb_id=mtchs.clb_id1 INNER JOIN clb AS c2 ON c2.clb_id=mtchs.clb_id2';

mais en filtrant comme avec un where sur le clb_id1 et/ou clb_id2 mais que je reçois de mon formulaire avec le nom complet de ma table clb... je ne sais pas si je suis clair hmm

J'ai tenté

WHERE c1nom=$_REQUEST['adversaire']

mais ça ne fonctionne pas

Merci pour les réponses

Dernière modification par aunisien (27-04-2012 13:58:20)

Hors ligne

Pied de page des forums