2013-03-21 88 views
0
----------------------------------------- 
     Table Name: product_cat 
----------------------------------------- 
id   - int(11)  - auto_increment 
      -    - 
cat_name - varchar(30) - 
      -    - 
branch_code- varchar(30) - 
      -    - 
date  - datetime - 



----------------------------------------- 
     Table Name: product_brand 
----------------------------------------- 
id   - int(11)  - auto_increment 
      -    - 
parent_id - int(11)  - 
      -    - 
branch_name - varchar(40) - 
      -    - 
category - varchar(40) - 

product_brand表应用外键此查询(alter table product_brand add constraint ta1 foreign key(parent_id) references product_cat(id)如何使用ID的refernece显示来自两个表的数据

,我通过以下方式

<table> 
     <form action="index.php?tanzil=brand_added" method="post">   
    <tr> 
     <td>Brand Name:</td> 
     <td> 
     <input type="text" name="brand_name" /> 
     </td> 
    </tr> 
    <tr> 
     <td>Category:</td> 
     <td> 
     <select name="cat_name"> 

<?php 
db_connect(); 
$q="select * from product_cat order by cat_name"; 
$rs=mysql_query($q); 
for($i=0;$i<mysql_num_rows($rs);$i++){ 

$rd=mysql_fetch_object($rs); 
echo"<option value='$rd->id'>$rd->cat_name</option>"; 

} 
?> 

     </select> 
     </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="submit" value="submit" /> 
    </td> 
    </tr> 
     </form> 
</table> 
将在 product_brand表数据

并通过这种方式在数据库中插入数据

db_connect(); 
$name_of_cat = $_POST['cat_name']; 
$name_of_brand = $_POST['brand_name']; 
$g ="insert into product_brand (parent_id,brand_name,category) values ('$name_of_cat','$name_of_brand','$name_of_cat')"; 
if(mysql_query($g)){ 
echo "Done";  
} 
else{ 
echo"Some error occured"; 
} 

和 通过这种方式

$query= "select * from product_brand"; 
$result= mysql_query($query); 
while($row=mysql_fetch_object($result)) 
{ 
echo $row['brand_name']; 
} 

显示的数据,但我没有从PARENT_ID的product_cat表引用

我怎样才能得到它让cat_name的名字吗?

回答

2

JOIN两个表:

SELECT 
    p.id, 
    p.branch_name, 
    c.cat_name 
FROM product_Brand  AS p 
INNER JOIN Product_cat AS c ON c.id = c.parent_id; 
0

因为结果必须从 “Product_brand” 表包括所有的行,尝试使用LEFT JOIN如下,

$query= "SELECT 
     pb.*, 
     pc.cat_name 
    FROM product_Brand pb 
    LEFT JOIN Product_cat pc ON pb.id = pc.parent_id"; 
$result= mysql_query($query); 
while($row=mysql_fetch_object($result)) 
{ 
echo $row['brand_name']; 
} 
相关问题