erreur dans grosse requete, pb de version?
Posté : 05 déc. 2007, 20:22
Bonjour à tous,
J'ai une requete SQL qui me renvoie une liste d'utilisateurs dans une boucle php foreach (désolé, elle est balèze...).
J'affiche le code dans une citation car la mise en gras ne marche pas avec les balises pour insérer du code:
J'essaye de rendre la requête plus précise.
Je veux que les résultats retournés prennent en compte un critère de plus qui se trouve dans une table #__comprofiler à ajouter dans la requête. Je fais donc ceci (instructions ajoutées en gras):
Pourtant les tablse et les données sont STRICTEMENT les mêmes sur les 2 serveurs.
Voyez vous une erreur dans l'ajout que j'ai fait?
La structure des tables
Merci pour vos réponses.
J'ai une requete SQL qui me renvoie une liste d'utilisateurs dans une boucle php foreach (désolé, elle est balèze...).
J'affiche le code dans une citation car la mise en gras ne marche pas avec les balises pour insérer du code:
Elle fonctionne parfaitement en local et en ligne .SELECT u.id AS id, u.name AS name, u.username AS username, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype, u.email AS email, u.block AS block FROM #__users AS u INNER JOIN #__core_acl_aro AS aro ON aro.value = u.id INNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id INNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id WHERE (u.usertype NOT LIKE '%administrator%') ORDER BY name ASC LIMIT 0, 50
J'essaye de rendre la requête plus précise.
Je veux que les résultats retournés prennent en compte un critère de plus qui se trouve dans une table #__comprofiler à ajouter dans la requête. Je fais donc ceci (instructions ajoutées en gras):
Et là, boum. ça marche toujours en local (mysql 3.23.49) mais plus en ligne (MySQL - 5.0.44).SELECT u.id AS id, u.name AS name, u.username AS username, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype, u.email AS email, u.block AS block FROM #__users AS u,#__comprofiler AS cp INNER JOIN #__core_acl_aro AS aro ON aro.value = u.id INNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id INNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id WHERE (u.usertype NOT LIKE '%administrator%') AND u.id = cp.user_id ORDER BY name ASC LIMIT 0, 50
Pourtant les tablse et les données sont STRICTEMENT les mêmes sur les 2 serveurs.
Voyez vous une erreur dans l'ajout que j'ai fait?
La structure des tables
Code : Tout sélectionner
--
-- Structure de la table `jos_users`
--
CREATE TABLE `jos_users` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) character set latin1 NOT NULL default '',
`username` varchar(25) character set latin1 NOT NULL default '',
`email` varchar(100) character set latin1 NOT NULL default '',
`password` varchar(100) character set latin1 NOT NULL default '',
`usertype` varchar(25) character set latin1 NOT NULL default '',
`block` tinyint(4) NOT NULL default '0',
`sendEmail` tinyint(4) default '0',
`gid` tinyint(3) unsigned NOT NULL default '1',
`registerDate` datetime NOT NULL default '0000-00-00 00:00:00',
`lastvisitDate` datetime NOT NULL default '0000-00-00 00:00:00',
`activation` varchar(100) character set latin1 NOT NULL default '',
`params` text character set latin1 NOT NULL,
PRIMARY KEY (`id`),
KEY `usertype` (`usertype`),
KEY `idx_name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1191 ;
--
-- Structure de la table `jos_core_acl_aro`
--
CREATE TABLE `jos_core_acl_aro` (
`aro_id` int(11) NOT NULL auto_increment,
`section_value` varchar(240) NOT NULL default '0',
`value` varchar(240) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`aro_id`),
UNIQUE KEY `jos_gacl_section_value_value_aro` (`section_value`(100),`value`(100)),
KEY `jos_gacl_hidden_aro` (`hidden`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1191 ;
--
-- Structure de la table `jos_core_acl_aro_groups`
--
CREATE TABLE `jos_core_acl_aro_groups` (
`group_id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`lft` int(11) NOT NULL default '0',
`rgt` int(11) NOT NULL default '0',
PRIMARY KEY (`group_id`),
KEY `parent_id_aro_groups` (`parent_id`),
KEY `jos_gacl_parent_id_aro_groups` (`parent_id`),
KEY `jos_gacl_lft_rgt_aro_groups` (`lft`,`rgt`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;
CREATE TABLE `jos_core_acl_groups_aro_map` (
`group_id` int(11) NOT NULL default '0',
`section_value` varchar(240) NOT NULL default '',
`aro_id` int(11) NOT NULL default '0',
UNIQUE KEY `group_id_aro_id_groups_aro_map` (`group_id`,`section_value`,`aro_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Structure de la table `jos_comprofiler`
--
CREATE TABLE `jos_comprofiler` (
`id` int(11) NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`firstname` varchar(100) character set latin1 default NULL,
`middlename` varchar(100) character set latin1 default NULL,
`lastname` varchar(100) character set latin1 default NULL,
`hits` int(11) NOT NULL default '0',
`message_last_sent` datetime NOT NULL default '0000-00-00 00:00:00',
`message_number_sent` int(11) NOT NULL default '0',
`avatar` varchar(255) character set latin1 default NULL,
`avatarapproved` tinyint(4) default '1',
`approved` tinyint(4) NOT NULL default '1',
`confirmed` tinyint(4) NOT NULL default '1',
`lastupdatedate` datetime NOT NULL default '0000-00-00 00:00:00',
`registeripaddr` varchar(50) character set latin1 NOT NULL default '',
`cbactivation` varchar(50) character set latin1 NOT NULL default '',
`banned` tinyint(4) NOT NULL default '0',
`banneddate` datetime default NULL,
`unbanneddate` datetime default NULL,
`bannedby` int(11) default NULL,
`unbannedby` int(11) default NULL,
`bannedreason` mediumtext character set latin1,
`acceptedterms` tinyint(1) NOT NULL default '0',
`cb_civ` varchar(255) collate latin1_general_ci default NULL,
`cb_tel` varchar(255) collate latin1_general_ci default NULL,
`cb_promo` varchar(255) character set latin1 default NULL,
`cb_curs` varchar(255) character set latin1 default NULL,
`cb_cotis` varchar(255) character set latin1 default NULL,
`cb_situat` varchar(255) collate latin1_general_ci default NULL,
`cb_employ` varchar(255) collate latin1_general_ci default NULL,
`cb_poste` varchar(255) collate latin1_general_ci default NULL,
`cb_autremail` varchar(255) collate latin1_general_ci default NULL,
`cb_pgenable` varchar(255) collate latin1_general_ci default NULL,
`cb_pgautopublish` varchar(255) collate latin1_general_ci default NULL,
`cb_pgautoapprove` varchar(255) collate latin1_general_ci default NULL,
`cb_pgshortgreeting` varchar(255) collate latin1_general_ci default NULL,
`cb_pgtotalquotasize` varchar(255) collate latin1_general_ci default NULL,
`cb_pgtotalquotaitems` varchar(255) collate latin1_general_ci default NULL,
`cb_pguploadsize` varchar(255) collate latin1_general_ci default NULL,
`cb_pgtotalitems` varchar(255) collate latin1_general_ci default NULL,
`cb_pgtotalsize` varchar(255) collate latin1_general_ci default NULL,
`cb_pglastupdate` date default NULL,
`cb_pgaccessmode` varchar(255) collate latin1_general_ci default NULL,
`cb_pgdisplayformat` varchar(255) collate latin1_general_ci default NULL,
`cb_pageviadeo` varchar(255) collate latin1_general_ci default NULL,
`cb_secteuracti` varchar(255) collate latin1_general_ci default NULL,
`cb_adremployeur` mediumtext collate latin1_general_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`),
KEY `apprconfbanid` (`approved`,`confirmed`,`banned`,`id`),
KEY `avatappr_apr_conf_ban_avatar` (`avatarapproved`,`approved`,`confirmed`,`banned`,`avatar`),
KEY `lastupdatedate` (`lastupdatedate`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;