我有这段代码 -
$previous_date = date('Y-m-d',strtotime("-14 days"));
$conn = testdb_connect ();
$getfamilydate= get_family_date ($previous_date);
if (! $row)
{
echo "No testcase being executed in the selected duration";
} else { while($row = $getfamilydate->fetch(PDO::FETCH_ASSOC))
{
foreach($row as $key)
{
$twoWeekfamily[] = $key;
}
}
}
这里我试图检查查询是否返回指定持续时间(上一个日期)的任何结果,如果没有,它应该显示msg,否则返回数组。
我的持续时间与 -
相同1天,2天,1周,2周......等等,我在所有持续时间内使用相同的代码。这个逻辑工作正常1天,即,如果没有数据显示msg,但是对于所有其他数据,如果查询没有返回数据,则抛出未定义变量:行通知。
这里的逻辑有什么问题?
答案 0 :(得分:1)
做类似的事情 -
while($row = $getfamilydate->fetch(PDO::FETCH_ASSOC))
{
foreach($row as $key)
{
$twoWeekfamily[] = $key;
}
}
if(empty( $twoWeekfamily))
{
echo "No testcase being executed in the selected duration";
}
答案 1 :(得分:0)
更改您的代码,如下所示
if (! $getfamilydate){
echo "No testcase being executed in the selected duration";
}
else {
$count = $getfamilydate->rowCount();
if($count > 0){
while($row = $getfamilydate->fetch(PDO::FETCH_ASSOC))
{
var_dump($row);
}
}
else{
echo "No rows found";
}
}
在您的代码中,您在将值设置为$ row
之前检查$ row答案 2 :(得分:0)
if (!$getfamilydate->rowCount()){
echo "No testcase being executed in the selected duration";
}else { while($row = $getfamilydate->fetch(PDO::FETCH_ASSOC))
{
foreach($row as $key)
{
$twoWeekfamily[] = $key;
}
}}
在$getfamilydate->rowCount()
声明中使用$row
代替if
。