Afficher une donnée en fonction d'une autre

Eléphant du PHP | 206 Messages

05 nov. 2007, 20:13

Voici ma requete actuelle

Problème : dans le tableau ou je liste mes amis, j'ai un champ ou je dis si ils sont online ou pas
		if (!empty($data['online_id'])) echo 'ONLINE'; else echo 'HORS LIGNE';
Mais ils apparaissent tous hors ligne pour l'instant :(
$requete = mysql_query("SELECT _user.pseudo AS user, _amis.pseudo AS ami, _amis.id AS id_ami, ami_date, if(_online.online_id is null, 0, 1) as online
FROM  membres _user
         inner JOIN whosonline _online
            ON _online.online_id = _amis.id 
			a
            ON a.uid = _user.id
            AND a.ami_confirm = '1'
         LEFT JOIN membres _amis
            ON a.aid = _amis.id
         LEFT JOIN whosonline _online
            ON _online.online_id = _amis.id
WHERE _user.id =".$_SESSION['id']."
ORDER BY a.ami_date, _online.online_id desc ") or die(mysql_error()); 

Et ma seconde question : je n'arrive pas à afficher uniquement la liste de mes amis qui sont online.

Merci beaucoup et bonne soirée

Eléphant du PHP | 206 Messages

08 nov. 2007, 14:10

petit up :D

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

08 nov. 2007, 14:14

Schéma des tables, messages d'erreur et tout le tintouin stp.

Eléphant du PHP | 206 Messages

08 nov. 2007, 17:58

Bien sur :)

Par contre oublier ma première question, le problème qui me reste est juste de savoir comment afficher seulement les amis qui sont en lignes.

Code : Tout sélectionner

-- -- Structure de la table `whosonline` -- CREATE TABLE `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_german2_ci;

Code : Tout sélectionner

-- -- Structure de la table `amis` -- CREATE TABLE `amis` ( `ami_from` int(11) NOT NULL, `ami_to` int(11) NOT NULL, `ami_confirm` enum('0','1') character set latin1 collate latin1_general_ci NOT NULL, `ami_date` int(11) NOT NULL, PRIMARY KEY (`ami_to`,`ami_from`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0;
Et voici ma requete actuelle qui affichait tous mes amis :)
$requete = mysql_query("SELECT _user.pseudo AS user, _amis.pseudo AS ami, _amis.id AS id_ami, ami_date, if(_online.online_id is null, 0, 1) as online
FROM  membres _user
         inner JOIN whosonline _online
            ON _online.online_id = _amis.id 
            a
            ON a.uid = _user.id
            AND a.ami_confirm = '1'
         LEFT JOIN membres _amis
            ON a.aid = _amis.id
         LEFT JOIN whosonline _online
            ON _online.online_id = _amis.id
WHERE _user.id =".$_SESSION['id']."
ORDER BY a.ami_date, _online.online_id desc ") or die(mysql_error());
Merci beaucoup de votre aide.

Bonne soirée