par
Pi33 » 15 août 2008, 17:26
Bonjour,
Comme vous pourrez vous en rendre compte, je suis débutant !
Je tente, en vain, de faire une requête sur trois tables.
CREATE TABLE `offers` (
`offer_id` int(6) NOT NULL auto_increment,
`sort` enum('Offre','Demande') NOT NULL default 'Offre',
`member_id` int(6) NOT NULL default '0',
`product_id` int(5) NOT NULL default '0',
`CAS_Number` varchar(64) NOT NULL default '',
`Botanical_Source` varchar(64) NOT NULL default '',
`Empirical_formula` varchar(64) NOT NULL default '',
`Molecular_weight` varchar(32) NOT NULL default '',
`Appearance` varchar(64) NOT NULL default '',
`Odour` varchar(64) NOT NULL default '',
`Density` varchar(24) NOT NULL default '',
`Refractive` varchar(24) NOT NULL default '',
`Optical` varchar(54) NOT NULL default '',
`Solubility` text NOT NULL,
`Constituents` text NOT NULL,
`qty` varchar(24) NOT NULL default '',
`delivery` varchar(32) NOT NULL default '',
`reg_date` int(10) NOT NULL default '0',
`country` varchar(24) NOT NULL default '',
`packing` varchar(32) NOT NULL default '',
`payement` text NOT NULL,
`target_price` varchar(24) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`origin` varchar(64) NOT NULL default '',
`groupe` enum('1','2') NOT NULL default '1',
PRIMARY KEY (`offer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
CREATE TABLE `demands` (
`demand_id` int(6) NOT NULL auto_increment,
`sort` enum('Offre','Demande') NOT NULL default 'Demande',
`member_id` int(6) NOT NULL default '0',
`product_id` int(5) NOT NULL default '0',
`CAS_Number` varchar(64) NOT NULL default '',
`Botanical_Source` varchar(64) NOT NULL default '',
`Empirical_formula` varchar(64) NOT NULL default '',
`Molecular_weight` varchar(32) NOT NULL default '',
`Appearance` varchar(64) NOT NULL default '',
`Odour` varchar(64) NOT NULL default '',
`Density` varchar(24) NOT NULL default '',
`Refractive` varchar(24) NOT NULL default '',
`Optical` varchar(54) NOT NULL default '',
`Solubility` text NOT NULL,
`Constituents` text NOT NULL,
`qty` varchar(24) NOT NULL default '',
`delivery` varchar(32) NOT NULL default '',
`reg_date` int(10) NOT NULL default '0',
`country` varchar(24) NOT NULL default '',
`packing` varchar(32) NOT NULL default '',
`payement` text NOT NULL,
`target_price` varchar(24) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`origin` varchar(64) NOT NULL default '',
`groupe` enum('1','2') NOT NULL default '1',
PRIMARY KEY (`demand_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
CREATE TABLE `produits` (
`product_id` int(6) NOT NULL auto_increment,
`name` varchar(45) NOT NULL default '',
`latin_name` varchar(64) NOT NULL default '',
`fr1` text NOT NULL,
`fr2` text NOT NULL,
`fr3` text NOT NULL,
`fr4` text NOT NULL,
`en1` text NOT NULL,
`en2` text NOT NULL,
`en3` text NOT NULL,
`en4` text NOT NULL,
`groupe` enum('1','2') NOT NULL default '1',
`photo` varchar(32) NOT NULL default '',
`en_name` varchar(45) NOT NULL default '',
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=159 ;
Code : Tout sélectionner
<?php
$req = mysql_query("SELECT produits.name, produits.product_id, count(offers.offer_id), count(demands.demand_id)
FROM produits,offers,demands
WHERE produits.product_id=offers.product_id=demands.product_id
GROUP BY produits.name
ORDER BY produits.name ASC")or die(mysql_error());?>
J'arrive bien à obtenir le produit.name, mais les count(offers.offer_id)et count(demands.demand_id) sont faux.
Quelqu'un peut-il m'aider ?
Merci par avance.[/php]
Bonjour,
Comme vous pourrez vous en rendre compte, je suis débutant !
Je tente, en vain, de faire une requête sur trois tables.
[php]CREATE TABLE `offers` (
`offer_id` int(6) NOT NULL auto_increment,
`sort` enum('Offre','Demande') NOT NULL default 'Offre',
`member_id` int(6) NOT NULL default '0',
`product_id` int(5) NOT NULL default '0',
`CAS_Number` varchar(64) NOT NULL default '',
`Botanical_Source` varchar(64) NOT NULL default '',
`Empirical_formula` varchar(64) NOT NULL default '',
`Molecular_weight` varchar(32) NOT NULL default '',
`Appearance` varchar(64) NOT NULL default '',
`Odour` varchar(64) NOT NULL default '',
`Density` varchar(24) NOT NULL default '',
`Refractive` varchar(24) NOT NULL default '',
`Optical` varchar(54) NOT NULL default '',
`Solubility` text NOT NULL,
`Constituents` text NOT NULL,
`qty` varchar(24) NOT NULL default '',
`delivery` varchar(32) NOT NULL default '',
`reg_date` int(10) NOT NULL default '0',
`country` varchar(24) NOT NULL default '',
`packing` varchar(32) NOT NULL default '',
`payement` text NOT NULL,
`target_price` varchar(24) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`origin` varchar(64) NOT NULL default '',
`groupe` enum('1','2') NOT NULL default '1',
PRIMARY KEY (`offer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
CREATE TABLE `demands` (
`demand_id` int(6) NOT NULL auto_increment,
`sort` enum('Offre','Demande') NOT NULL default 'Demande',
`member_id` int(6) NOT NULL default '0',
`product_id` int(5) NOT NULL default '0',
`CAS_Number` varchar(64) NOT NULL default '',
`Botanical_Source` varchar(64) NOT NULL default '',
`Empirical_formula` varchar(64) NOT NULL default '',
`Molecular_weight` varchar(32) NOT NULL default '',
`Appearance` varchar(64) NOT NULL default '',
`Odour` varchar(64) NOT NULL default '',
`Density` varchar(24) NOT NULL default '',
`Refractive` varchar(24) NOT NULL default '',
`Optical` varchar(54) NOT NULL default '',
`Solubility` text NOT NULL,
`Constituents` text NOT NULL,
`qty` varchar(24) NOT NULL default '',
`delivery` varchar(32) NOT NULL default '',
`reg_date` int(10) NOT NULL default '0',
`country` varchar(24) NOT NULL default '',
`packing` varchar(32) NOT NULL default '',
`payement` text NOT NULL,
`target_price` varchar(24) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`origin` varchar(64) NOT NULL default '',
`groupe` enum('1','2') NOT NULL default '1',
PRIMARY KEY (`demand_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
CREATE TABLE `produits` (
`product_id` int(6) NOT NULL auto_increment,
`name` varchar(45) NOT NULL default '',
`latin_name` varchar(64) NOT NULL default '',
`fr1` text NOT NULL,
`fr2` text NOT NULL,
`fr3` text NOT NULL,
`fr4` text NOT NULL,
`en1` text NOT NULL,
`en2` text NOT NULL,
`en3` text NOT NULL,
`en4` text NOT NULL,
`groupe` enum('1','2') NOT NULL default '1',
`photo` varchar(32) NOT NULL default '',
`en_name` varchar(45) NOT NULL default '',
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=159 ;
[/php]
[code]<?php
$req = mysql_query("SELECT produits.name, produits.product_id, count(offers.offer_id), count(demands.demand_id)
FROM produits,offers,demands
WHERE produits.product_id=offers.product_id=demands.product_id
GROUP BY produits.name
ORDER BY produits.name ASC")or die(mysql_error());?>[/code]
J'arrive bien à obtenir le produit.name, mais les count(offers.offer_id)et count(demands.demand_id) sont faux.
Quelqu'un peut-il m'aider ?
Merci par avance.[/php]