显示空值

时间:2016-12-16 10:37:54

标签: php

我尝试使用以下代码从mysql数据库&获取列 dpaid_status 的结果它的工作正常:

数据库

enter image description here

网站

enter image description here

$i = 0; 
foreach($order as $orderData) 
{ 
$k = 0; 
$orderitems = $orderData['dproduct_id']; 
$orderitemsarray = explode(",", $orderitems); 

while ($k < count($orderitemsarray)) 

    { 

if ($orderitemsarray[$k] != '0') 
    { 

$stmtorders = $user_home->runQuery("SELECT * FROM order_details"); 
$stmtorders->execute(array(":dorder_id" => $orderData['entity_id'])); 

$roworders = $stmtorders->fetch(PDO::FETCH_ASSOC); 

$dorderStatus = $roworders['dpaid_status']; 

$productdetail = Mage::getModel('catalog/product')->load($orderitemsarray[$k]); 
$designer_id = $productdetail->getDesignerID() ; 

if($accountType == "admin")
{ 
$designerName = getDesignerName($productdetail->getDesignerID()) . " -(" . $productdetail->getDesignerID() . ")"; 

$stmt1 = $user_home->runQuery("SELECT * FROM order_details WHERE dproduct_id=:pid and designerorder_id=:doid");
    $stmt1->execute(array(
        ":doid" => $orderData->getIncrementId(),
        ":pid" => $orderitemsarray[$k],
    ));

    $paid_status='';
    while($datas = $stmt1->fetch())

{
    $paid_status=$datas['dpaid_status'];
}

$responce[] = array( 
$paid_status
); 

return json_encode($responce);

但是对于某些列,dpaid_status没有任何价值,所以我想在页面中显示 none 。所以代替$paid_status=$datas['dpaid_status'];我试过下面的代码,

    if ($roworders['dorder_id'] == '')
    {
     $paid_status='unpaid';
    }
    else
    {
     $paid_status=$datas['dpaid_status'];
    }   

例如:在上面的图片中,数据库中没有“15585”的行,所以它应该显示unpaid ....但现在它显示为空白....

4 个答案:

答案 0 :(得分:0)

if ($roworders['dpaid_status'] != '')
{
    $paid_status=$datas['dpaid_status'];
}
else
{
   $paid_status='unpaid';
}   

答案 1 :(得分:0)

您也可以在SQL级别解决问题,只需使用如下查询:

SELECT [field_list], IFNULL(dpaid_status, 'unpaid') as paid_status FROM order_details

如果字段不为null则返回dpaid_status值,否则返回'unpaid'

答案 2 :(得分:0)

您应该在返回/使用之前检查obj变量。这样,当值为空时(表中的空值或数据库表中缺少的行),您将捕获所有情况。 我已将新行添加到您的代码中,如下所示:

$paid_status

答案 3 :(得分:0)

您只需要使用PHP empty()

  

确定变量是否为空。变量是   如果它不存在或者其值等于FALSE则认为为空。   如果变量不存在,empty()不会生成警告。

以下内容被认为是空的:

  
      
  • “”(空字符串)
  •   
  • 0(0为整数)
  •   
  • 0.0(0作为浮动)
  •   
  • “0”(0作为字符串)
  •   
  • NULL
  •   
  • FALSE
  •   
  • array()(空数组)
  •   
  • $变种; (声明的变量,但没有值)
  •   

所以你的if陈述可以写成

if (empty($roworders['dpaid_status']))
{
 $paid_status='unpaid';
}
else
{
 $paid_status=$datas['dpaid_status'];
}