par
VaN » 09 mars 2009, 14:50
Bonjour,
J'ai une table MESSAGES, et une TABLES USERS :
Code : Tout sélectionner
CREATE TABLE `messages` (
`msg_id` int(11) NOT NULL auto_increment,
`msg_pc_id` int(11) NOT NULL,
`msg_from_id` int(11) NOT NULL,
`msg_to_id` int(11) NOT NULL,
`msg_datetime` datetime NOT NULL,
`msg_title` varchar(200) NOT NULL,
`msg_content` text NOT NULL,
`msg_statut` tinyint(4) NOT NULL,
PRIMARY KEY (`msg_id`),
KEY `msg_from_id` (`msg_from_id`),
KEY `msg_to_id` (`msg_to_id`),
KEY `msg_statut` (`msg_statut`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` varchar(100) NOT NULL,
`user_pass` varchar(100) NOT NULL,
`user_mail` varchar(100) NOT NULL,
`user_statut` tinyint(4) NOT NULL,
`user_activation_key` varchar(10) NOT NULL,
`user_company` varchar(50) NOT NULL,
`user_gender` enum('M','Mme','Mlle') NOT NULL,
`user_firstname` varchar(50) NOT NULL,
`user_lastname` varchar(50) NOT NULL,
`user_address` varchar(150) NOT NULL,
`user_zipcode` varchar(10) NOT NULL,
`user_city` varchar(100) NOT NULL,
`user_country` int(11) NOT NULL,
`user_tel` varchar(20) NOT NULL,
`user_mobile` varchar(20) NOT NULL,
`user_allow_mails` tinyint(4) NOT NULL,
PRIMARY KEY (`user_id`),
KEY `user_statut` (`user_statut`),
KEY `user_country` (`user_country`),
KEY `user_allow_mails` (`user_allow_mails`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
la table message stock 2 identifiants d'utilisateur : un pour savoir qui envoie le message, l'autre pour savoir qui le reçoit.
Et j'ai une fiche message, sur laquelle j'affiche les infos de ce message, et donc les login de la personne qui envoie le message, et celui de celle qui le reçoit.
Voici ma requête :
$message = getDataFromQuery(sprintf("SELECT msg_id, user_login, msg_datetime, msg_title, msg_content, msg_statut
FROM ".$t["o_messages"].", ".$t["o_users"]." WHERE msg_from_id = user_id AND msg_to_id = user_id AND msg_id = '%d'",
$clean["msg_id"]));
Je récupère donc le user_login, en faisant une correspondance entre msg_from_id et user_id d'une part, et msg_to_id et user_id d'autre part. Mais comment faire pour afficher à la fois le login de l'envoyeur et celui du destinataire, puisqu'il s'agit du même nom de champ ?
Suis-je obligé de faire 2 requêtes différentes ?
Bonjour,
J'ai une table MESSAGES, et une TABLES USERS :
[code]CREATE TABLE `messages` (
`msg_id` int(11) NOT NULL auto_increment,
`msg_pc_id` int(11) NOT NULL,
`msg_from_id` int(11) NOT NULL,
`msg_to_id` int(11) NOT NULL,
`msg_datetime` datetime NOT NULL,
`msg_title` varchar(200) NOT NULL,
`msg_content` text NOT NULL,
`msg_statut` tinyint(4) NOT NULL,
PRIMARY KEY (`msg_id`),
KEY `msg_from_id` (`msg_from_id`),
KEY `msg_to_id` (`msg_to_id`),
KEY `msg_statut` (`msg_statut`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` varchar(100) NOT NULL,
`user_pass` varchar(100) NOT NULL,
`user_mail` varchar(100) NOT NULL,
`user_statut` tinyint(4) NOT NULL,
`user_activation_key` varchar(10) NOT NULL,
`user_company` varchar(50) NOT NULL,
`user_gender` enum('M','Mme','Mlle') NOT NULL,
`user_firstname` varchar(50) NOT NULL,
`user_lastname` varchar(50) NOT NULL,
`user_address` varchar(150) NOT NULL,
`user_zipcode` varchar(10) NOT NULL,
`user_city` varchar(100) NOT NULL,
`user_country` int(11) NOT NULL,
`user_tel` varchar(20) NOT NULL,
`user_mobile` varchar(20) NOT NULL,
`user_allow_mails` tinyint(4) NOT NULL,
PRIMARY KEY (`user_id`),
KEY `user_statut` (`user_statut`),
KEY `user_country` (`user_country`),
KEY `user_allow_mails` (`user_allow_mails`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
[/code]
la table message stock 2 identifiants d'utilisateur : un pour savoir qui envoie le message, l'autre pour savoir qui le reçoit.
Et j'ai une fiche message, sur laquelle j'affiche les infos de ce message, et donc les login de la personne qui envoie le message, et celui de celle qui le reçoit.
Voici ma requête :
[php]$message = getDataFromQuery(sprintf("SELECT msg_id, user_login, msg_datetime, msg_title, msg_content, msg_statut
FROM ".$t["o_messages"].", ".$t["o_users"]." WHERE msg_from_id = user_id AND msg_to_id = user_id AND msg_id = '%d'",
$clean["msg_id"]));[/php]
Je récupère donc le user_login, en faisant une correspondance entre msg_from_id et user_id d'une part, et msg_to_id et user_id d'autre part. Mais comment faire pour afficher à la fois le login de l'envoyeur et celui du destinataire, puisqu'il s'agit du même nom de champ ?
Suis-je obligé de faire 2 requêtes différentes ?