Comment lier 2 tables ?

Fermé
horeca - 24 mars 2008 à 14:13
 horeca - 24 mars 2008 à 15:47
bonjour, j'ai ce probleme:

j'ai une table client, une table annonces
je veux trier dans la table annonces les clients qui sont des agences immobilieres, ça c'est bon.
dans le code: function AfficheAgences()

mais je veux en plus afficher le nombre d'annonces par client (les agences)
dans le code: function getNombreAnnoncesAgences()
affiche la totalite des annonces des agences et pas par agence...
quelqu'un peut maider ? lier les deux tables, comment ?

le code:

<?php
function getNombreAnnoncesAgences()
{
$requet = "select count(*) FROM annonces where validee=1 and (annonces.date_fin IS NULL Or annonces.date_fin>=now()) and contact_prop=1 ";

$result = mysql_query($requet);
$ligne = mysql_fetch_array($result);
$nb=$ligne[0];
return $nb;
}
?>
<?php
function AfficheAgences()
{
$requet = "SELECT `idclient`,`agence_nom`, `adresse`,`codepostal`,`ville`, `nbr_annonces` FROM `clients` WHERE mode_client= 1 ";

$result = mysql_query($requet);
while($ligne = mysql_fetch_object($result))
{

$out .= '<font color="#000000">';
$out .= 'Agence n° '.$ligne->idclient. '</font><br>';

$out .= '';
$out .= ' <img src="imagesinc/point.gif" /> <a href="liste_annonces_agences.php?agence='.$ligne->idclient.'"><font color="#ff0000">'.$ligne->agence_nom. '</font> </a><br>';
$out .= ''.$ligne->adresse.' '.$ligne->codepostal.' '.$ligne->ville.'<br>';
$out .= 'nombre annonces: '.getNombreAnnoncesAgences().'';
$out .= '<br>------------------------------------------------<br>';

}
echo $out;

}
?>
<?php
AfficheAgences()
?>
A voir également:

2 réponses

stylinkoncept Messages postés 76 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 27 mars 2008 26
24 mars 2008 à 14:15
Je ne suis pas un pro php/sql mais euuu, pourquoi lier deux table, pourquoi ne pas créer une table qui va rechercher les informations dans la BDD ?
0
Bonjour,

Je crois comprendre ce que tu veux faire.
Tu dois donc lier les tables clients et annonces.
Dans ta table annonce, je suppose que pour chaque annonce, il y a un identifiant client.
Pour lier les 2 tables, on peut utiliser un where.
Je pense que tu devrais essayer ceci :
SELECT COUNT(*) FROM clients C annonces A where C.idclient=A.idclient group by idclient

La syntaxe n'est peut-être pas parfaite pour ton cas mais j'espère que ça te mettra sur la bonne piste.

p.a
0
bonjour,

c'est ça, j'avais dejà essaé avec WHERE mais je n'y arrive pas, je l'ai tourné de toutes les manieres et j'ai toujours un message d'erreur...
merci de l'aide
horeca
0