Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示2个表中的数据_Php_Mysql_Sql_Pdo - Fatal编程技术网

Php 显示2个表中的数据

Php 显示2个表中的数据,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我想在表中显示srfno、datecreated、clientname和returneditem。srfno、datecreated和clientname来自sales表,returneditem位于sales\u item表中。表格通过srfno进行关联。我可以显示srfno、date和clientname,但不能返回editem。 请找出我的代码中的错误和遗漏。任何解释和帮助都可以。谢谢 加载数据的代码: if(isset($_GET['sn'])){ $ppid = $_GET['

我想在表中显示srfno、datecreated、clientname和returneditem。srfno、datecreated和clientname来自sales表,returneditem位于sales\u item表中。表格通过srfno进行关联。我可以显示srfno、date和clientname,但不能返回editem。 请找出我的代码中的错误和遗漏。任何解释和帮助都可以。谢谢 加载数据的代码:

if(isset($_GET['sn'])){
    $ppid = $_GET['sn'];
    $sqlLoader="Select sales.srfno, sales.clientid, sales.datecreated, 
                sales_item.retdesc 
                from sales 
                RIGHT JOIN sales_item ON sales.srfno==sales_item.srfno";
    $resLoader=$con->prepare($sqlLoader);
    $resLoader->execute(array($ppid));      

    while($rowLoader = $resLoader->fetch(PDO::FETCH_ASSOC)){
        $sn= $rowLoader['srfno'];
        $dcr= $rowLoader['datecreated'];
        $cid=$rowLoader['clientid'];
        $retid=$rowLoader['srfno'];
        $retdesc=$rowLoader['retdesc'];
这是我用来显示srf、日期、clientname和返回项目的代码。我在这里使用一些pdo:

$sql="Select sales.srfno, sales.datecreated, sales.clientid, sales_item.retdesc 
      from sales 
      RIGHT JOIN sales_item ON sales.srfno=sales_item.srfno";
$res=$db->prepare($sql);
$res->execute();    
$str="<div><table cellpadding='0' cellspacing='0' border='0' class='display' id='tbl' class='jtable' align='center'>";
$str.="<thead><tr><th width='250px'>SRF No</th><th>Date Created</th><th align='center'>Client Name</th><th>Returned Item</th><th></th><th></th></tr></thead><tbody>";

while($row = $res->fetch(PDO::FETCH_ASSOC))
{
    $str.="<tr><td><center>".$row['srfno']."</center></td>";
    $str.="<td align='center'>".$row['datecreated']."</td>";

    $sclientid=$row['clientid'];
        $cli="Select name from client where clientid=$sclientid";
        $client=$db->prepare($cli);
        $client->execute(); 
        while($clie= $client->fetch(PDO::FETCH_ASSOC))
        {
            $clientname=$clie['name'];
        }

    $item=$row['srfno'];
        $itemret="Select retdesc from sales_item where srfno=$item";
        $itemreturn=$db->prepare($itemret);
        $itemreturn->execute();
        while($return=$itemreturn->fetch(PDO::FETCH_ASSOC))
        {
            $retdesc=$return['retdesc'];
        }

    $str.="<td align='center'>".$clientname."</td>";
    $str.="<td align='center'>".$retdesc."</td>";
$sql=“选择sales.srfno、sales.datecreated、sales.clientid、sales\u item.retdesc
来自销售
在sales.srfno=sales\u item.srfno上右键连接sales\u item”;
$res=$db->prepare($sql);
$res->execute();
$str=”“;
$str.=“SRF节点状态CreatedClient名称返回项”;
while($row=$res->fetch(PDO::fetch_ASSOC))
{
$str.=''.$row['srfno'].'';
$str.=''.$row['datecreated'].'';
$sclientid=$row['clientid'];
$cli=“从客户端选择名称,其中clientid=$sclientid”;
$client=$db->prepare($cli);
$client->execute();
而($clie=$client->fetch(PDO::fetch_ASSOC))
{
$clientname=$clie['name'];
}
$item=$row['srfno'];
$itemret=“从销售项目中选择retdesc,其中srfno=$item”;
$itemreturn=$db->prepare($itemret);
$itemreturn->execute();
而($return=$itemreturn->fetch(PDO::fetch_ASSOC))
{
$retdesc=$return['retdesc'];
}
$str.=“..$clientname.”;
$str.=“.$retdesc.”;

看起来Echo\u me的内容是正确的。您没有在查询中选择返回的项目:

$sql="Select sales.srfno, sales.datecreated, sales.clientid, sales_item.retdesc 
from sales 
RIGHT JOIN sales_item 
ON sales.srfno=sales_item.srfno";
将该项添加到查询中

$sql="Select sales.srfno, sales.datecreated, sales.clientid, sales_item.retitem, sales_item.retdesc 
from sales 
RIGHT JOIN sales_item 
ON sales.srfno=sales_item.srfno";

对于那些可能遇到此问题的人,您不需要创建另一个查询来获取另一个表的值,尤其是在使用联接的情况下。使用联接将使您的工作更轻松。只需通过调用变量。$row['fieldname']就这样!!:)感谢帮助我认识到我的代码有什么问题的人。谢谢你!你在哪里选择returneditem?@echo\u me at sales\u item Table你误用了PDO-即使在这里你也应该使用参数化查询。在这种情况下,考虑到连接键的常见类型,你可能不会受到SQL注入的攻击。你应该dn不需要再次追踪
sales\u项目
,因为它会出现在原始结果集中(可能只是使用
orderby
?)。我可能也会为
客户端
添加一个联接。哦,
右联接
很少使用-
左(外部)JOIN
通常被用作首选项,尽管您可能可以在这里使用常规的
(内部)JOIN
。@Clockwork Muse我明白了您所说的。我所做的是排除了获取$retdesc的过程。我只是使用$row['retdesc'调用$retdesc]。谢谢!!!!!@echo\u Me退回的商品是sales\u item.retdesc。它是一样的,我没有时间叫它