bonjour voilà j'ai fais 2 pages une pour liste d'ami et l'autre c'est liste d'ami

donc pour devenir ami ils dev ront accepté d'étre ami où refusé

ca je l'ai fais et ça fonctionne

mais moi qui m'interresse c'est de récupéré l'ami connecté seulement

donc voilà j'ai fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
// Afficher les amis en ligne
if (isset($_SESSION['pseudo']) == TRUE)
{
 
 
 
	$login = $_SESSION['pseudo'];
	 $autorisation = $_SESSION['level'] ;
 
	if ($autorisation >= 2)
	{
$demande_ami = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_amis 
WHERE ami_to = '.intval($_SESSION['id']).' AND ami_confirm = "0"'), 0);
if (empty($demande_ami)) $demande_ami=0;
 
if ($demande_ami != 0  AND $demande_ami < 2)
{
	echo '(1 demande)';
}
elseif($demande_ami > 1)
{
	echo '(' . $demande_ami . ' demandes)';
}
 
echo '</a><br /><br />';
 
 
$requete = mysql_query("SELECT ami
FROM (
	SELECT ami_from AS ami FROM forum_amis WHERE ami_to=1 AND ami_confirm=1
	UNION
	SELECT ami_to AS ami FROM forum_amis WHERE ami_from=1 AND ami_confirm=0
) ami
")or die(mysql_error());
echo '<h5>Ami en ligne</h5>';
 
while($data = mysql_fetch_array($requete)){
if($data) echo $data['membre_pseudo']; else echo 'Aucun amis connecté';
}
 
 $requete = mysql_query("SELECT ami
FROM (
	SELECT ami_from AS ami FROM forum_amis WHERE ami_to=1 AND ami_confirm=1
	UNION
	SELECT ami_to AS ami FROM forum_amis WHERE ami_from=1 AND ami_confirm=0
) ami
	JOIN forum_amis_en_ligne
		ON user_id=ami

")or die(mysql_error());
 
echo '-> <a href="./voirprofil.php?m='.$data['ami_id'].'&amp;action=consulter">'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a> (en ligne)<br /><br />';
 
 
}					
 }
?>
donc pour Trouver tous les amis de l'utilisateur avec id=1 devrait ressembler à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT ami
FROM (
	SELECT ami_from AS ami FROM forum_amis WHERE ami_to=1 AND ami_confirm=1
	UNION
	SELECT ami_to AS ami FROM forum_amis WHERE ami_from=1 AND ami_confirm=1
) ami
et l'autre ca seras pour Si un membre connecté, c'est une ligne dans la table forum_whosonline; les amis connectés de l'utilisateur 1 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT ami
FROM (
	SELECT ami_from AS ami FROM forum_amis WHERE ami_to=1 AND ami_confirm=1
	UNION
	SELECT ami_to AS ami FROM forum_amis WHERE ami_from=1 AND ami_confirm=1
) ami
	JOIN forum_amis_en_ligne
		ON user_id=ami
mais le souci c'est que le pseudo de mon ami ne veut pas s'affiché

si voulez plus d'info dites le moi

merci de votre aide

et pour vous aidé j'ai fais 3 tables pour amis enfin si ça vous aides a comprendre comment on peut affiché justes les amis en ligne


CREATE TABLE IF NOT EXISTS `forum_amis` (
`ami_from` int(11) NOT NULL,
`ami_to` int(11) NOT NULL,
`ami_confirm` enum('0','1') collate latin1_general_ci NOT NULL,
`ami_date` int(11) NOT NULL,
PRIMARY KEY (`ami_to`,`ami_from`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


CREATE TABLE IF NOT EXISTS `forum_amis_en_ligne` (
`user_id` int(11) NOT NULL,
`user_time` int(11) NOT NULL,
`date_connect` datetime NOT NULL,
`user_ip` int(15) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `forum_whosonline` (
`online_id` int(11) NOT NULL,
`online_time` int(11) NOT NULL,
`online_ip` int(15) NOT NULL,
PRIMARY KEY (`online_ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci]
merci de votre aide pour faire fonctionné ce bout de code