Почему один из моих столбцов отображается пустым?

У меня есть таблица, в которой один из моих столбцов показывает пустой. В нем есть столбец "Идентификатор", "Дата", "Название", "Продукт + Кол-во" и сумма. Но только в 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 ''.$row['reservation_id'].'';
echo ''.$row['date'].'';
echo ''.$row['firstname'].' '.$row['lastname'].'';
echo '<div><code>';
$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'].'';
 }
 echo ''.'PHP ' . number_format(floatval($row['payable'])); 
}
?&gt;</code> </div>
2 ответа

Хмммм, я удалил свой ответ, но никто не пытался так...

Я думаю, что это echo '   '.$row1['qty'].''; это строка, о которой вы просили. И все это выглядит как опечатка. Если это так:

  1. У вас нет confirmation в предложении SELECT (он используется только в JOIN и GROUP BY), и возможно, ваш $ rrr будет пустым. Повторите это, чтобы убедиться, что есть значение.

  2. Проверьте, работает ли ваш запрос и возвращает результаты. Извлеките строку запроса (или возьмите ее из файла журнала mysql) и протестируйте ее.

  3. У вас есть SELECT *. Правильно ли указано имя поля "qty" в среде чувствительности к случаю? "Qty" может быть другим, и запрос может работать, но вы не получите результат.


я думаю, что, поскольку у вас есть inner join и, возможно, таблицы пересечений не имеют данных

сначала попробуйте сделать left join если оно работает

убедитесь, что все таблицы имеют в нем данные

licensed under cc by-sa 3.0 with attribution.