[英]Fetch data from two MYSql tables and display as HTML table
I have two tables, the first is a 'users' table which has a column called 'store' and I also have a table called 'stores' with columns 'store number' 'store location'. 我有两个表,第一个是“用户”表,其中有一个名为“商店”的列,我也有一个名为“商店”的表,其中有“商店编号”,“商店位置”列。
The column 'store' in the users table is a 'store number'. 用户表中的“商店”列是“商店编号”。
What I'm trying to do is create a HTML table that is something like 我想做的是创建一个类似HTML表格
Sample data: 样本数据:
Store number: 34 Store location: London Users: 34 店铺编号:34店铺位置:伦敦用户:34
Store Number | 店铺编号| Store Location | 店铺位置| Number of Users at this store| 该商店的用户数|
So it would be something like select * from stores and for each create new row. 因此,就像从商店中选择*并为每个创建新行。
and for the number of users be something like sum * from users where 'store' = 'store number' from stores table. 对于用户数量,可以使用诸如sum *来自用户的数字,其中来自store表的'store'='store number'。
I hope this makes sense, 我希望这是有道理的,
Jack. 插口。
UPDATE: 更新:
This is correct: 这是对的:
$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>";
Tables: 表格:
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 EXISTS users
( 如果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 ;
Try this SQL: 试试这个SQL:
SELECT storenumber, location, COUNT(users.store) as nbr_users FROM stores
LEFT JOIN users ON stores.storenumber = users.store
GROUP BY store.id
and then do 然后做
echo $row['nbr_users'];
to print the number of users. 打印用户数。
Try this: 尝试这个:
$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>";
You can try this- 你可以试试这个
$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>";
If you can provide with exact table structure i can frame it more accurately. 如果您可以提供准确的表格结构,则可以更准确地进行构图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.