Code : Tout sélectionner
SELECT COUNT(DISTINCT cat)
FROM lot
INTO @varCode : Tout sélectionner
SELECT lotid, COUNT(DISTINCT cat) AS cnt
FROM lot
GROUP BY lotid
HAVING cnt = @var
Salut et merci à tous pour votre aidesuivi deCode : Tout sélectionner
SELECT COUNT(DISTINCT cat) FROM lot INTO @varCode : Tout sélectionner
SELECT lotid, COUNT(DISTINCT cat) AS cnt FROM lot GROUP BY lotid HAVING cnt = @var
Code : Tout sélectionner
--
-- Structure de la table `lot`
--
CREATE TABLE `lot` (
`id` int(11) NOT NULL auto_increment,
`lotid` int(11) NOT NULL default '0',
`cat` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
--
-- Contenu de la table `lot`
--
INSERT INTO `lot` VALUES (1, 9, 0);
INSERT INTO `lot` VALUES (2, 7, 0);
INSERT INTO `lot` VALUES (3, 9, 1);
INSERT INTO `lot` VALUES (4, 6, 1);
INSERT INTO `lot` VALUES (5, 9, 2);
INSERT INTO `lot` VALUES (6, 6, 2);
INSERT INTO `lot` VALUES (8, 6, 0);<?
include ("connectbase.php");
$count = "SELECT COUNT(DISTINCT cat) FROM lot INTO @var";
$execCount = mysql_query($count) or die(mysql_error());
$selectCount = "SELECT lotid, COUNT(DISTINCT cat) AS cnt FROM lot GROUP BY lotid HAVING cnt = @var";
$execSelectCount = mysql_query($selectCount) or die(mysql_error());
$dataSelectCount = mysql_fetch_assoc($execSelectCount);
echo "D2BUT <br>";
print_r($dataSelectCount);
echo "<br> FIN";
?>
résultat :
vous remarquez donc qu'il n'affiche que le lotid 6 alors que le lotid 9 est également correctD2BUT
Array ( [lotid] => 6 [cnt] => 3 )
FIN
<?
include ("connectbase.php");
$count = "SELECT COUNT(DISTINCT cat) FROM lot";
$execCount = mysql_query($count) or die(mysql_error());
$nbrCat = mysql_result($execCount, 0, 0);
$selectCount = "SELECT lotid, COUNT(DISTINCT cat) AS cnt FROM lot GROUP BY lotid HAVING cnt = ".$nbrCat;
$execSelectCount = mysql_query($selectCount) or die(mysql_error());
$dataSelectCount = mysql_fetch_assoc($execSelectCount);
echo "D2BUT <br>";
print_r($dataSelectCount);
echo "<br> FIN";
?>
Ouh la, j'ai bien peur que tu sois bon pour un retour aux tutoriels PHP/MySQL...
Combien de fois exécutes-tu mysql_fetch_assoc() ? Une seule fois, donc tu récupères une seule ligne. Si tu veux en récupérer plusieurs, tu sais ce qu'il te reste à faire
je suis un phpéiste moi, pas un sqlistej'ai l impression que cette erreur ne vient que de ma (mauvaise) gestion des résultats de la 2ème requête SQL...
<?
include ("connectbase.php");
$count = "SELECT COUNT(DISTINCT cat) FROM lot INTO @var";
$execCount = mysql_query($count) or die(mysql_error());
$selectCount = "SELECT lotid, COUNT(DISTINCT cat) AS cnt FROM lot GROUP BY lotid HAVING cnt = @var";
$execSelectCount = mysql_query($selectCount) or die(mysql_error());
$dataSelectCount = mysql_fetch_assoc($execSelectCount);
echo "D2BUT <br>";
print_r($dataSelectCount);
echo "<br> FIN";
?>
<?
include ("connectbase.php");
$count = "SELECT COUNT(DISTINCT cat) FROM lot INTO @var";
$execCount = mysql_query($count) or die(mysql_error());
$selectCount = "SELECT lotid, COUNT(DISTINCT cat) AS cnt FROM lot GROUP BY lotid HAVING cnt = @var";
$execSelectCount = mysql_query($selectCount) or die(mysql_error());
while($dataSelectCount = mysql_fetch_assoc($execSelectCount)){
$result[] = $dataSelectCount;
}
echo "D2BUT <br>";
print_r($result);
echo "<br> FIN";
?>