我在PHP中有一个显示MySQL查询结果的表。
数据库表 item_em 具有数据库表 hypermarket_em 中可用的大型超市中可用项目的价格详细信息。有一些大型超市中没有的商品。因此,当我在表格中显示价格时,我希望那些没有价格的单元格 N / A 。
所以我的问题是我自己尝试了一个代码,当数据库表字段没有值时显示消息。但它不起作用,我也没有得到任何错误。任何想法都非常感激。谢谢。
这是我的代码
$res = mysql_query("SELECT h_id FROM hypermarket_em") or die(mysql_error());
echo"<tbody><tr>";
while($row = mysql_fetch_array( $res ))
{
$result = mysql_query("SELECT item_name FROM items_em WHERE h_id=".$row['h_id'])or die(mysql_error());
while($drop_4 = mysql_fetch_array( $result ))
{
echo"<th scope=row>".$drop_4['item_name']."</th>";
$rslt = mysql_query("SELECT price FROM items_em WHERE item_name='".$drop_4['item_name']."' and h_id=".$row['h_id'])or die(mysql_error());
if (mysql_num_rows($rslt) == 0)
echo"<td>N/A</td>";
while($drop = mysql_fetch_array( $rslt ))
{
echo"<td>".$drop['price']."</td>";
}
}
}
echo"</tr></tbody>";
答案 0 :(得分:1)
尝试撤消mysql_num_rows
并检查您是否>
行还有0
行
if (mysql_num_rows($rslt) > 0){
while($drop = mysql_fetch_array( $rslt )){
echo"<td>".$drop['price']."</td>";}
}
else{
echo"<td>N/A</td>";}
编辑 -
我认为你想要做的就是这样 -
while($drop = mysql_fetch_array( $rslt )){
if ($drop['price'] == ''){
echo"<td>N/A</td>";}
else{
echo"<td>".$drop['price']."</td>";}
答案 1 :(得分:0)
$data = mysql_fetch_array( $res );
if (!empty($data)) {
while($row = mysql_fetch_array( $res ))
{
$result = mysql_query("SELECT item_name FROM items_em WHERE h_id=".$row['h_id'])or die(mysql_error());
while($drop_4 = mysql_fetch_array( $result ))
{
echo"<th scope=row>".$drop_4['item_name']."</th>";
$rslt = mysql_query("SELECT price FROM items_em WHERE item_name='".$drop_4['item_name']."' and h_id=".$row['h_id'])or die(mysql_error());
if (mysql_num_rows($rslt) == 0)
echo"<td>N/A</td>";
while($drop = mysql_fetch_array( $rslt ))
{
echo"<td>".$drop['price']."</td>";
}
}
}
} else {
echo "<td>No record found</td>";
}
答案 2 :(得分:0)
不确定您在这里尝试做什么,但似乎您可能也希望简化查询。尝试类似:
SELECT
*
FROM
hypermarket_em h
LEFT JOIN items_em i ON ( h.h_id = i.h_id );
使用此查询,您可以执行以下操作:
while($drop = mysql_fetch_array( $rslt )){
echo"<td>" . ( empty( $drop['price'] ) ? 'N/A' : $drop['price'] ) . "</td>";
}
答案 3 :(得分:0)
所以这是我的答案。
$res = mysql_query("SELECT DISTINCT h_id FROM hypermarket_em") or die(mysql_error());
echo"<tbody><tr>";
while($row = mysql_fetch_array( $res ))
{
$result = mysql_query("SELECT item_name FROM items_em WHERE h_id=".$row['h_id'])or die(mysql_error());
while($drop_4 = mysql_fetch_array( $result ))
{
echo"<th scope=row>".$drop_4['item_name']."</th>";
$rslt = mysql_query("SELECT price FROM items_em WHERE item_name='".$drop_4['item_name']."' and h_id=".$row['h_id'])or die(mysql_error());
while($drop = mysql_fetch_array( $rslt ))
{
echo"<td>".$drop['price']."</td>";
}
}
}
$res = mysql_query("SELECT DISTINCT h_id FROM hypermarket_em") or die(mysql_error());
while($row = mysql_fetch_array( $res ))
{
$result = mysql_query("SELECT item_name FROM items_em WHERE h_id=".$row['h_id'])or die(mysql_error());
if(mysql_num_rows($result)<=0)
echo"<td>N/A</td>";
}
echo"</tr></tbody>";
我必须执行两次相同的查询,因为我想要订单中的商品名称和价格值。所以我首先打印项目名称,然后只打印价格或“N / A”消息。
谢谢大家的帮助.. :)