为什么我的一列显示为空?

时间:2014-08-03 07:57:28

标签: php mysql sql

我的表格中有一列显示为空。它有Id,Date,Cust name,Product + Qty和amount列。但只有在Product + Qty中显示空,即使它在数据库中有数据。

PHP代码

 <?php
include('connect.php');
$start = isset($_GET['d1']) ? $_GET['d1'] : '';
$end = isset($_GET['d2']) ? $_GET['d2'] : '';
if(isset($_GET['submit']) && $_GET['submit']=='Search')
{
$result = mysql_query(
"SELECT 
   t1.qty, 
   t2.lastname, 
   t2.firstname, 
   t2.date, 
   t3.name,  
   t2.reservation_id, 
   t2.payable FROM prodinventory AS t1
INNER JOIN reservation AS t2
ON t1.confirmation=t2.confirmation
INNER JOIN products AS t3
ON t1.room=t3.id
WHERE str_to_date(t2.date, '%d/%m/%Y') BETWEEN
   str_to_date('$start', '%d/%m/%Y') AND
   str_to_date('$end', '%d/%m/%Y')
GROUP BY t2.confirmation") or die(mysql_error());   
while ($row = mysql_fetch_array($result)){
echo'<tr class="record">';
echo '<td>'.$row['reservation_id'].'</td>';
echo '<td>'.$row['date'].'</td>';
echo '<td>'.$row['firstname'].' '.$row['lastname'].'</td>';
echo '<td><div align="left">';
$rrr=$row['confirmation'];
$results = mysql_query("SELECT * FROM prodinventory where confirmation='$rrr'");
    while($row1 = mysql_fetch_array($results))
            {
                $roomid=$row1['room'];
                $resulta = mysql_query("SELECT * FROM products where id='$roomid'");
                    while($rowa = mysql_fetch_array($resulta))
                        {
                        echo $rowa['name'].' x';
                        }
                        echo '&nbsp;&nbsp;&nbsp;'.$row1['qty'].'<br>';
                        }
                        echo '<td>'.'PHP ' . number_format(floatval($row['payable'])); 
}
?> 

2 个答案:

答案 0 :(得分:0)

嗯,我删除了我的答案,但没人试过......

我认为此echo '&nbsp;&nbsp;&nbsp;'.$row1['qty'].'<br>';是您询问的行。这一切看起来都像是一个错字。如果是这种情况:

  1. SELECT子句中没有confirmation(它只在JOIN和GROUP BY中使用),你的$ rrr可能是空白的。回应它以确保有价值。

  2. 检查您的查询是否有效并返回结果。回显查询字符串(或从mysql日志文件中获取)并测试它。

  3. 您有SELECT *。字段名称是&#39; qty&#39;在案例敏感的环境中纠正? &#39;数量&#39;可能有所不同,查询可能有效,但您无法获得结果。

答案 1 :(得分:0)

我认为这是因为你有inner join并且交叉表可能没有数据

首先尝试left join

确保所有表格中都包含数据