Php 在多个表中检索mysql数据
我有一个名为category的表, 它包含两列id主键项 以项目的名称,我有另一个表 我使用foreach循环获取category表中的数据 在该循环中,每个项目都有一个表。我试图检索这些数据,但只得到了一个表数据 这是我的密码:Php 在多个表中检索mysql数据,php,mysql,sql,Php,Mysql,Sql,我有一个名为category的表, 它包含两列id主键项 以项目的名称,我有另一个表 我使用foreach循环获取category表中的数据 在该循环中,每个项目都有一个表。我试图检索这些数据,但只得到了一个表数据 这是我的密码: $con=mysql_connect('localhost','root',''); $db="testing"; $a=mysql_select_db($db,$con); $c=mysql_query("select * from category"); $d=m
$con=mysql_connect('localhost','root','');
$db="testing";
$a=mysql_select_db($db,$con);
$c=mysql_query("select * from category");
$d=mysql_fetch_array($c);
mysql_data_seek($c,0);
foreach($d as $x)
{
echo $x['item']." ";
$e=mysql_query("select * from ".$x['item']);
if($e)
{
$f=mysql_fetch_array(mysql_query("select * from ".$x['item']));
mysql_data_seek($e,0);
foreach($f as $y)
{
echo $y['price']." ".$y['Quantity'];
}
}
else continue;//break;
}
我已经尽了最大的努力去理解你想从你的帖子中得到什么。另外,从PHP5.5.0开始,mysql就被弃用了。您应该改用mysqli。我的答案是用mysqli和mysql完成的 结果: 源代码-使用mysqli:
$d=mysql\u fetch\u数组$c;这只会给你一排。使用while循环,而不是使用while循环,你说我只有一个表数据是什么意思?我认为你的术语在这里有误导性。您似乎将行引用为表。您似乎也应该为此使用联接。最重要的是,您绝对不应该使用不推荐使用的mysql_*函数。如果您发布了表架构,我认为我们可以更好地帮助您,一般来说,最好在sql语句中执行join操作,从多个表中检索数据,而不是您正在执行的操作。第二天我就收到了。对于同一张表,我需要在单击按钮后显示id和项目。按钮以及while循环中的项目。你能解释得更详细些吗?很难理解你需要什么。
Item - car
Price: 29000.00 Quantity: 5
Price: 18000.00 Quantity: 6
Item - house
Price: 50000.00 Quantity: 4
$con=mysqli_connect('localhost','root','');
$db="testing";
$a=mysqli_select_db($con, $db);
$c=mysqli_query($con,"select * from category");
while($x = mysqli_fetch_array($c)){
echo "Item - ".$x['item']."<br/>";
$e=mysqli_query($con,"select * from ".$x['item']);
if($e)
{
while($y = mysqli_fetch_array($e)){
echo "Price: ".$y['price']." Quantity: ".$y['Quantity']."<br/>";
}
}
else continue;//break;
}
$con=mysql_connect('localhost','root','');
$db="testing";
$a=mysql_select_db($db, $con);
$c=mysql_query("select * from category");
while($x = mysql_fetch_array($c)){
echo "Item - ".$x['item']."<br/>";
$e=mysql_query("select * from ".$x['item']);
if($e)
{
while($y = mysql_fetch_array($e)){
echo "Price: ".$y['price']." Quantity: ".$y['Quantity']."<br/>";
}
}
else continue;//break;
}
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `testing`
--
-- --------------------------------------------------------
--
-- Table structure for table `car`
--
CREATE TABLE IF NOT EXISTS `car` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`price` decimal(10,2) NOT NULL,
`Quantity` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Dumping data for table `car`
--
INSERT INTO `car` (`id`, `price`, `Quantity`) VALUES
(5, 29000.00, 5),
(6, 18000.00, 6);
-- --------------------------------------------------------
--
-- Table structure for table `category`
--
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `category`
--
INSERT INTO `category` (`id`, `item`) VALUES
(1, 'car'),
(2, 'house');
-- --------------------------------------------------------
--
-- Table structure for table `house`
--
CREATE TABLE IF NOT EXISTS `house` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`price` decimal(10,2) NOT NULL,
`Quantity` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `house`
--
INSERT INTO `house` (`id`, `price`, `Quantity`) VALUES
(2, 50000.00, 4);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;