SELECT sur deux tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : SELECT sur deux tables

par dogawaf » 16 oct. 2005, 22:31

$query = "SELECT a.id_artiste, a.concert_id, a.nom_artiste, c.date
          FROM   artiste a, concert c
          WHERE  a.concert_id = c.id_concert
            AND  a.concert_id = ".$concert;
ok, ça c'est bon, j'avais ce résultat déjà.

en fait le problème (me suis-je mal exprimé...), c'est pour arriver à afficher sous un même concert les différents artistes y correspondant.

j'ai essayé ça :
$query = 'SELECT soiree.date, groupe.nom_groupe  
		FROM soiree, groupe 
		WHERE soiree.id_soiree = groupe.soiree_id ';

$result = mysql_query($query,$link) or die("<br>query failed :".mysql_error());

if($result !==0)
{
    while($soiree = mysql_fetch_assoc($result))
	{
		echo '<table style="text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="0" cellspacing="0">
				<tr>
					<td>'.date_fr($soiree[date]).' </td>
				</tr>
				<tr align="center">
					<td><font color="#cc5522">'.$soiree[nom_groupe].'<b><br></font></td></tr>
			</table>
			<br><br>';		
	}
}


seulement, les soirées où il y a plusieurs artistes, je me retrouve avec une ligne concert+artiste au lieu de concert+artiste+artiste(si il y a).

je sais pas si je suis clair...
en tout cas merci...

Re: SELECT sur deux tables

par Truc » 16 oct. 2005, 22:10

là je mets tout ça dans un tableau $tab
mysql_query() ne retourne pas un tableau mais une ressource
juste pour info :wink:

Re: SELECT sur deux tables

par albat » 16 oct. 2005, 21:57

Suggestions :
- Préfixe tes champs par l'alias (ou les noms) des tables.
- indique le concert recherché
$query = "SELECT a.id_artiste, a.concert_id, a.nom_artiste, c.date
          FROM   artiste a, concert c
          WHERE  a.concert_id = c.id_concert
            AND  a.concert_id = ".$concert;
NB : la clause a.concert_id = c.id_concert est une jointure
qui ne retournera que les artistes auxquels correspond un concert (et inversement)

SELECT sur deux tables

par dogawaf » 16 oct. 2005, 21:36

Bonjour, pour mon premier poste, je vous reserve une petite question con...

j'ai une table "concert" et une table "artiste"

la table concert : id_concert, date...
la table artiste : id_artiste, concert_id, nom_artiste, genre...

bien sûr plusieurs artistes ont le même concert_id.

seulement je n'arrive pas lors d'une requete sur une soirée à afficher les différents artistes qui ont artiste.concert_id == concert.id_concert

voici où j'en suis actuellement avec ma requête :
$query = 'SELECT * FROM concert,artiste WHERE concert_id = id_concert';
là je mets tout ça dans un tableau $tab
$tab=mysql_query($query,$db_connect) or die(mysql_error());
jusque là tout marche. Mais si plusieurs artistes ont le même concert_id, je n'arrive à afficher que le premier... :cry:

Sois il existe une solution sql, soit je ne sais pas lire un tableau... :roll:

Voilou, merci pour le guidage éventuel...