通过php从mysql返回空值

时间:2013-05-21 17:48:21

标签: php mysql codeigniter

我正在开展一个项目,我需要通过电子邮件发送两个警报。我已经实现了一个电子邮件提醒,并且工作正常,我在成功发送电子邮件后收到状态消息,但是对于第二个,我添加了一个列作为service_status。虽然电子邮件功能工作正常,但它没有显示完成而是显示null或空值,但数据库中的值是“已完成”...这是我的代码,我需要显示完成的结果

  <?php 
if(count($det)){
?>

<?php for($i=0;$i<count($det);$i++)
{?>
 <tr class="rowvalues">
<td rowspan="2" class="bottomcolor">
        <input  type="checkbox"  name="list[]"  value="<?php echo $det[$i]['customer_id']; ?>" /></td>
<td rowspan="2" class="bottomcolor"><?php echo $det[$i]['customer_title'].".".$det[$i]['customer_surname']; ?></td>
<td rowspan="2" class="bottomcolor"><?php echo $det[$i]['vehicle_regno']; ?></td>
<td>Reminder1</td>
<td><?php
        if ($det[$i]['reminder1_duedate'] != '0000-00-00'){
         echo date('d/m/Y',strtotime($det[$i]['reminder1_duedate']));}else{echo '00/00/0000';} ?></td>
<td><?php if ($det[$i]['reminder1_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder1_duedate'].'- 28 days'));}else{echo '00/00/0000';} ?></td>
<td><?php if ($det[$i]['reminder1_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder1_duedate'].'- 14 days'));}else{echo '00/00/0000';} ?></td>
<td><?php if ($det[$i]['reminder1_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder1_duedate'].'- 2 days'));}else{echo '00/00/0000';} ?></td>
<td><?php echo isset($det[$i]['reminder1_status'])?($det[$i]['status']=='c')?'Completed':'Pending':'';?>           </td>
<td rowspan="2" class="bottomcolor"><a href="<?php echo base_url();?>preview/view_vehicle.php?vid=<?php echo $det[$i]['customer_id'];?>" rel="facebox"><img src="<?php echo base_url();?>images/view.gif" alt="View"/></a>
       <a style="text-decoration:none;" href="<?php echo base_url();?>index.php/vehicles/edit_mot/<?php echo $det[$i]['customer_id'];?>" title="Edit"> <img src="<?php echo base_url();?>images/edit.gif" alt="search"/></a> <a style="text-decoration:none;" href="<?php echo base_url();?>index.php/vehicles/view/delete/<?php echo $det[$i]['customer_id'];?>" onclick="return confirm('Are you sure you want to delete this Vehicle Details?');" title="Delete">
        <img src="<?php echo base_url();?>images/delete.gif" alt="delete"/></a></td>
    </tr>
    <tr>
    <td class="bottomcolor">Reminder 2</td>
     <td class="bottomcolor"><?php
        if ($det[$i]['reminder2_duedate'] != '0000-00-00'){
         echo date('d/m/Y',strtotime($det[$i]['reminder2_duedate'])); }else{echo '00/00/0000';}?></td>
    <td class="bottomcolor"><?php if ($det[$i]['reminder2_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder2_duedate'].'- 28 days'));}else{echo '00/00/0000';}?></td>
    <td class="bottomcolor"><?php if ($det[$i]['reminder2_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder2_duedate'].'- 14 days'));}else{echo '00/00/0000';}?> </td>
    <td class="bottomcolor"><?php if ($det[$i]['reminder2_duedate'] != '0000-00-00'){ echo  date('d/m/Y',strtotime($det[$i]['reminder2_duedate'].'- 2 days'));}else{echo '00/00/0000';}?> </td>
    <td class="bottomcolor"><?php echo isset($det[$i]['reminder2_status'])?($det[$i]['service_status']=='c')?'Completed':'Pending':'';?>          </td>
    </tr>

             <?php } 
          }
     else{ echo '<div class="row"><p  style="text-align:center;"><strong>No records found</strong></p></div>'; 
    } ?>

  </table>      

问题来自这行代码

        <td class="bottomcolor"><?php echo isset($det[$i]['reminder2_status'])?($det[$i]['service_status']=='c')?'Completed':'Pending':'';?>          </td>

这将返回空值或空值

2 个答案:

答案 0 :(得分:1)

您的问题是您的嵌套三元运算符。如果您打算嵌套它们,至少使用括号来组织它们。

<?php echo 
    (isset($det[$i]['reminder2_status'])?
        ($det[$i]['service_status']=='c' ? 'Completed' : 'Pending' )
        : '' );?>

如果返回空字符串,则表示未设置$det[$i]['reminder2_status']。但它无法返回null

答案 1 :(得分:1)

可能是因为$ det [$ i] ['reminder_status']变量未定义。 检查调用mysql查询的$ det变量。 确保通过mysql返回reminder_status列。