我想根据产品p_id显示数据

时间:2014-09-09 05:48:53

标签: php mysql

我的3张表,即产品,乐队,产品信息

产品

CREATE TABLE IF NOT EXISTS `product` (
  `p_id` int(11) NOT NULL AUTO_INCREMENT,
  `product` varchar(50) NOT NULL,
  PRIMARY KEY (`p_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `product` (`p_id`, `product`) VALUES
(1, 'Atta'),
(2, 'OIl');

品牌

CREATE TABLE IF NOT EXISTS `brand` (
  `b_id` int(11) NOT NULL AUTO_INCREMENT,
  `p_id` int(11) NOT NULL,
  `brand` varchar(50) NOT NULL,
  `image` varchar(255) NOT NULL,
  PRIMARY KEY (`b_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;  

插入

INSERT INTO `brand` (`b_id`, `p_id`, `brand`, `image`) VALUES
(1, 1, 'Ashirvad', 'FreeVector-Blue-Squares-Vector.jpg'),
(2, 1, 'Phillsberry', 'ILBAGNOALESSI_One_02.jpg'),
(3, 2, 'Sunflower', '001-bi-fold-corporate-brochure-template-vol-1-2.jpg');

产品信息

CREATE TABLE IF NOT EXISTS `product_info` (
  `pi_id` int(11) NOT NULL AUTO_INCREMENT,
  `pro` int(11) NOT NULL,
  `b_id` int(11) NOT NULL,
  `quantity` varchar(20) NOT NULL,
  `measurement` varchar(20) NOT NULL,
  `mrp` varchar(20) NOT NULL,
  `our_price` varchar(20) NOT NULL,
  PRIMARY KEY (`pi_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

插入

INSERT INTO `product_info` (`pi_id`, `pro`, `b_id`, `quantity`, `measurement`, `mrp`, `our_price`) VALUES
(1, 1, 1, '1', 'kg', '50', '48'),
(2, 1, 2, '1', 'kg', '60', '59'),
(3, 2, 3, '1', 'ltr', '90', '86');

当我使用以下查询根据p_id显示数据时,它会正确显示数据

<?php
                // Make a MySQL Connection
                $con = mysql_connect("localhost", "root", "");
                  if (!$con)
                {
                  die('Could not Connect to DB :'. mysql_error());
                }
                mysql_select_db("mr_bazaar",$con);

                $result = mysql_query("select * FROM product"); 
                echo '<ul class="list-1 p2">'; 
                while($row = mysql_fetch_array( $result )) {
                    // Print out the contents of each row into a table

                    echo '<li>';
                    echo "<a href='page1.php?$row[p_id]'>";
                    echo '<b>';
                    echo $row['product'];
                    echo '</b>';
                    echo "</a>";
                    echo '</li>';
                } 
                echo '</ul>';
                mysql_close($con);
            ?>

我希望使用表产品,品牌,product_info(产品表中的产品),(品牌表中的品牌),(数量,来自product_info表的mrp),根据另一页page1.php中的p_id显示数据< / p>

2 个答案:

答案 0 :(得分:0)

将产品ID作为URL参数发送到下一页。所以改变,

 echo "<a href='page1.php?$row[p_id]'>";

echo "<a href='page1.php?pid=$row[p_id]'>";

并使用

接受 page1.php 中的pid
$pid=$_GET['pid'];  // getting the URL parameter 

现在,您可以查询以获取与pid

对应的详细信息
mysql_query("SELECT p.product,b.brand,pi.quantity,pi.mrp FROM product as p INNER JOIN brand as b ON p.p_id=b.p_id
INNER JOIN product_info as pi ON pi.b_id=b.b_id WHERE p.p_id=$pid");

答案 1 :(得分:0)

1-要将产品ID发送到page1.php,请正确传递变量,然后更改

echo "<a href='page1.php?$row[p_id]'>";

echo "<a href='page1.php?pid=$row[p_id]'>";

2-使用以下方法获取page1.php上的变量:

$pid = $_GET['pid'];

3-查询数据库以获取该产品的记录

$result = mysql_query("select * FROM product WHERE p_id='{$pid}'");

*注意:

1-我建议您不要使用mysql_*函数使用mysqlipdo库,并在从GET参数获取字符串时转义字符串。

2-您可以使用联接从与当前产品相对应的其他表中获取数据