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 :
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
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'].'&action=consulter">'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a> (en ligne)<br /><br />'; } } ?>
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 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
mais le souci c'est que le pseudo de mon ami ne veut pas s'affiché
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
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
merci de votre aide pour faire fonctionné ce bout de codeCREATE 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]
Partager