我尝试使用以下代码从mysql数据库&获取列 dpaid_status 的结果它的工作正常:
数据库
网站
$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
....但现在它显示为空白....
答案 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'];
}