我有两个表,第一个是'用户'表,其中有一个名为'store'的列,我还有一个名为'stores'的表,其中列有'store number''store location'。
users表中的“store”列是“商店号码”。
我要做的是创建一个类似
的HTML表格示例数据:
商店号码:34 店铺位置:伦敦 用户:34
商店号码|店铺位置|此商店的用户数量|
因此,它会像商店中的select *和每个创建新行一样。
并且用户数量与来自用户的总和*类似,其中'store'='store number'来自商店表。
我希望这是有道理的,
杰克。
更新:
这是正确的:
$result = mysql_query("SELECT * FROM stores", $con) or die(mysql_error());
echo "<table border='1'>";
echo "<tr> <th>Store Number</th> <th>Store Location</th> <th>Number of Users</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
echo "<tr><td>";
echo $row['storenumber'];
echo "</td><td>";
echo $row['location'];
echo "</td><td>";
echo 'Amount of users here';
echo "</td></tr>";
}
echo "</table>";
表:
CREATE TABLE IF NOT EXISTS `stores` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`storenumber` int(11) NOT NULL,
`location` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE IF NOT NOT EXISTS users
(
`id` int(50) NOT NULL AUTO_INCREMENT,
`email` varchar(50) NOT NULL,
`store` int(11) NOT NULL,
`lastvisit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;
答案 0 :(得分:1)
试试这个SQL:
SELECT storenumber, location, COUNT(users.store) as nbr_users FROM stores
LEFT JOIN users ON stores.storenumber = users.store
GROUP BY store.id
然后再做
echo $row['nbr_users'];
打印用户数。
答案 1 :(得分:0)
试试这个:
$result = mysql_query("SELECT * FROM stores", $con) or die(mysql_error());
echo "<table border='1'>";
echo "<tr> <th>Store Number</th> <th>Store Location</th> <th>Number of Users</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// gets the total amount of users
$query = mysql_query("SELECT COUNT(*) AS total FROM users WHERE `store`='".$row['storenumber']."'") or die( mysql_error() );
$r = mysql_fetch_array( $query );
$total = $r['total'];
unset($query, $r);
// Print out the contents of each row into a table
echo "<tr><td>";
echo $row['storenumber'];
echo "</td><td>";
echo $row['location'];
echo "</td><td>";
echo $total;
echo "</td></tr>";
}
echo "</table>";
答案 2 :(得分:0)
你可以试试这个 -
$result = mysql_query("Select count(user_id) as CNT,storenumber,location from store Left join user ON user.store_number = store.store_number group by store.store_number", $con) or die(mysql_error());
$row = mysql_fetch_assoc($result );
echo "<table border='1'>";
echo "<tr> <th>Store Number</th> <th>Store Location</th> <th>Number of Users</th> </tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
echo "<tr><td>";
echo $row['storenumber'];
echo "</td><td>";
echo $row['location'];
echo "</td><td>";
echo $row['CNT'];
echo "</td></tr>";
}
echo "</table>";
如果你能提供精确的表结构,我可以更准确地构建它。