我的表格中有一列显示为空。它有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 ' '.$row1['qty'].'<br>';
}
echo '<td>'.'PHP ' . number_format(floatval($row['payable']));
}
?>
答案 0 :(得分:0)
嗯,我删除了我的答案,但没人试过......
我认为此echo ' '.$row1['qty'].'<br>';
是您询问的行。这一切看起来都像是一个错字。如果是这种情况:
SELECT子句中没有confirmation
(它只在JOIN和GROUP BY中使用),你的$ rrr可能是空白的。回应它以确保有价值。
检查您的查询是否有效并返回结果。回显查询字符串(或从mysql日志文件中获取)并测试它。
您有SELECT *
。字段名称是&#39; qty&#39;在案例敏感的环境中纠正? &#39;数量&#39;可能有所不同,查询可能有效,但您无法获得结果。
答案 1 :(得分:0)
我认为这是因为你有inner join
并且交叉表可能没有数据
首先尝试left join
确保所有表格中都包含数据