2013-08-27 179 views
0

选择我有一个名为产品列表和rsales从两个不同的表,并显示

在产品列表的FF数据2个不同的表中

id|pcode| 
1 |1220 | 

and the ff data in rsales are 

id|total|total_discount| 
3 |500 |  50  | 

我的问题是,我想从两个不同的表格数据是产品列表和rsales并水平显示它。我尝试了一切,但它垂直显示。其结果必然是这样的

id|pcode|total|total_discount| 
1 |1220 |500 | 50   | 

这是到目前为止我的代码,但它只是从单一的表

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("inventory", $con); 



$result = mysql_query("SELECT * FROM productlist"); 

while($row = mysql_fetch_array($result)) 
    { 
echo '<tr>'; 
echo '<td>'.$row['pcode'].'</td>'; 
echo '</tr>'; 
    } 

mysql_close($con); 
?> 
+0

使用加入了两个表透过这两个表中的所有的Fileds。这样你就可以得到单行的值。 –

+0

'productlist'和'rsales'之间的链接在哪里?此外,现在强烈建议不要使用'mysql_ *'。该库已弃用,您应该真正使用MySQLi或PDO ... – BenM

+0

您可以直接阅读: [MySql Join](http://dev.mysql.com/doc/refman/5.0/en/join。 html) –

回答

-1

有rsales和produclist之间没有联系,但你可以尝试这样,你会使用这个

$result = mysql_query("SELECT * FROM productlist,rsales"); 
+0

这是很棒的代码简单直接。但是如果我要总结rsale的“总数”值呢?任何想法先生?我尝试总和(总),但出现错误:D – user2656724

+0

您需要定义所有列名称而不是(*)在您的查询与总和(总) –

0

显示数据由2抵消它们之间的ID区别吗?如果是这样,您可以使用Fluffeh的回答是这样的:

select 
ffdata.pcode, 
rsales.total, 
rsales.total_discount 
from 
ffdata 
    join rsales 
     on ffdata.id=rsales.id+2 
+0

这是行不通的,因为这些表的列数不同 - 也不会真正起作用,因为数据会出现在不同的行上 - 这不是问题的要求。 – Fluffeh

+0

我认为联合不能用于那种问题,因为没有链接或没有共同的,我只是想从两个表中获取数据。但我试过这段代码,并出现错误警告:mysql_fetch_array()期望参数1是资源,布尔给出在C:\ wamp \ www \ eduards.org \ admin \ itemsales.php在线136 – user2656724

0

您需要使用您的SQL联接,从而在单个行中的数据出来,在结果和匹配上正确的领域。

我写了lengthy Q&A about it a while back只是这种问题,你将真的很好看,其中,但在短,您的查询应该是这个样子:

select 
    ffdata.pcode, 
    rsales.total, 
    rsales.total_discount 
from 
    ffdata 
     join rsales 
      on ffdata.id=rsales.id 

这是假设你有一个共同的关键在链接记录的两个表上。

相关问题