[PHP] Requête

Salut à tous !

Je débute dans le php et je bloque sur une requête que voici :

$sql1 = mysql_query("SELECT id, titre, lien FROM team WHERE id = '" . intval($_GET['id']) . "'");
  while(list($id, $titre, $lien) = mysql_fetch_array($sql1))
	$sql2 = mysql_query("SELECT name, prenom, nom, avatar, born, city, country FROM membres WHERE id = '" . intval($_GET['id']) . "'");
  	list($name, $prenom, $nom, $avatar, $born, $city, $country) = mysql_fetch_array($sql2);

Cependant je n arrive pas à insérer une requête à savoir celle-ci :

$sql = mysql_query("SELECT id, titre, image FROM news_cat WHERE id = '" . $id_cat . "'");
	list($id, $titre, $image) = mysql_fetch_array($sql);

En fait je voulais qu’il récupère l’id de la première requête

Voici le détail de ma table “Team”
id mediumint(9) NOT NULL default ‘0’,
id_cat mediumint(9) NOT NULL default ‘0’,
titre varchar(200) NOT NULL default ‘’,
lien varchar(250) NOT NULL default ‘’,
KEY id_cat (id_cat)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Voici le détail de ma table ‘team_cat’ :
id mediumint(9) NOT NULL auto_increment,
titre varchar(200) NOT NULL default ‘’,
image varchar(250) NOT NULL default ‘’,
KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Merci de votre aide

Déjà commence par respecter les types de ta bdd : quand tu des nombres, pas la peine de les caster en chaîne :

SQL
[color=blue;font-weight:bold]SELECT[/color] id, titre, lien FROM team WHERE id = '" . intval($_GET['id']) . "'

devient :

SQL
[color=blue;font-weight:bold]SELECT[/color] id, titre, lien FROM team WHERE id = " . intval($_GET['id']) . "

Pour le reste, la requête semble juste, et comme je ne sais pas ce que tu veux en faire, je ne puis pas dire grand chose de plus.

Je me suis trompé dans ma requête, ce n’était pas dans la table news mais dans la table team_cat

SELECT id, titre, lien FROM team_cat WHERE id = '" . intval($_GET['id']) . "'

En fait je voudrais recuperer l’id de la première requête

ELa première ? Tu veux dire

$sql1 = mysql_query("SLECT id, titre, lien FROM team WHERE id = '" . intval($_GET['id']) . "'");

?

Tu l’as déjà soit dans $id, soit dans intval($_GET[‘id’]) …

Saluton,
Pourquoi faire une requête, puis n fois la deuxième requête, alors qu’avec une jointure une seule requête suffirait ?

Pour mieux expliquer mon problème :

  • J’ai une page " Team" où tous les membres de la team sont regroupés.
  • Ensuite lorsqu’on clique sur un membre cela ouvre une nouvelle page individualisée avec seulement le profil de la personne selectionnée. Par contre mon souci c’est que je n’arrive pas à récuperer l’id de ma première requête à savoir :
    $sql1 = mysql_query(“SLECT id, titre, lien FROM team WHERE id = '” . intval($_GET[‘id’]) . “’”);

La page s’affiche bien mais cette requête
SELECT id, titre, lien FROM team_cat WHERE id = ‘" . intval($_GET[‘id’]) . "’
ne fonctionne pas.

Maljuna Kris : Peux tu m’en dire + sur une jointure stp ?

Essaie la requête suivante, si j’ai bien compris ce que tu voulais faire ça devrait marcher :

$sql = mysql_query("SELECT tc.id, tc.titre, tc.image FROM team_cat tc, team t WHERE tc.id = t.id_cat AND t.id = '" . intval($_GET['id']) . "'");

Sinon, si tu veux utiliser des bases de données correctement, tu dois absolument apprendre ce qu’est une jointure, c’est vraiment la base :wink:

Ici, la jointure est représentée par "tc.id = t.id_cat". Tu joins les deux tables team_cat et team par une relation entre ces deux champs.

Merci Asbel pour l’explication de la jointure, j’ai bien compris !

Par contre cela ne fonctionne pas.
Pour mieux tenter de faire comprendre mon souci, j’ai uppé mon site sur un hebergeur de dépannage.

http://team.agressiv.verygames.net/teams.php >> voici la page team où l’on peut voir l’ensemble des membres de l’équipe. J’arrive bien à recupérer par exemple ‘titre’ de la table “team_cat”

$sql = mysql_query("SELECT id FROM team_cat ORDER BY id");
	while(list($id) = mysql_fetch_array($sql))
	{
	
  $sql1 = mysql_query("SELECT id, titre, lien FROM team WHERE id_cat = '" . $id . "'");
  while(list($id, $titre, $lien) = mysql_fetch_array($sql1))
  {
  	
  	$sql2 = mysql_query("SELECT name, prenom, nom, avatar, born, city, country FROM membres WHERE id = '" . $id . "'");
  	list($name, $prenom, $nom, $avatar, $born, $city, $country) = mysql_fetch_array($sql2);

Ensuite j’aimerais lorsque je clique sur un membre, son profil s’affiche en récuperant les infos de la table ‘Team_cat’ à savoir id, titre et image. Mais si j’utilise la même requête que celle juste au dessus cela ne marche pas dans le sens où j’ai 5 catégories de titre (leader, orga, newser, membre, trial) et bien seulement les 5 premiers ont le profil complet d’où mon problème.

Désolé pour la clarté de mon explication ^^

Sinon je viens de m’apercevoir qu’avec Firefox je n’ai pas de bug d’affichage mais avec Internet Explorer j’ai une grande line blanche tout en bas de mes pages, c’est étrange