我用HTML/PHP编写一个页面,该页面连接到码头数据库(船,船东等...(,该数据库从下拉列表中选择船名,然后显示该船在其上所做的所有服务。
这是我的相关代码...
if(isset($_POST['form1'])){//if there was input data submitted
$form1 = $_POST['form1'];
$sql1 = 'select Status from ServiceRequest,MarinaSlip where MarinaSlip.SlipID = ServiceRequest.SlipID and BoatName = "'.$form1.'"';
$form1 = null;
$result1 = $conn->query($sql1);
$test = 0;
while ($row = mysqli_fetch_array($result1, MYSQLI_ASSOC)) {
$values1[] = array(
'Status' => $row['Status']
);
$test = 1;
}
echo '<p>Service Done:</p><ol>';
if($test = 1){
foreach($values1 as $v1){
echo '<li>'.$v1['Status'].'</li>';
}
echo '</ol>';
}else{
echo 'No service Done';
}
我遇到的问题是,服务的某些描述只是Open
我不希望显示为服务完成,或者根本没有完成服务,这引发了undefined variable: values1
如何阻止脚本将Open
添加到values1
数组,并在values1
为空时显示一条消息,指出没有工作完成?
试试这个
$arr = array();
if (empty($arr))
{
echo'empty array';
}
我们经常用empty($array_name)
来检查它是否为空
<?php
if(!empty($array_name))
{
//not empty
}
else
{
//empty
}
还有另一种我们可以加倍确定的方法count()
即使用函数
if(count($array_name) > 0)
{
//not empty
}
else
{
//empty
}
?>
要确保数组为空,您可以同时使用 count(( 和 empty((。 但是 count(( 比 empty((.count(( 稍慢一点,返回数组中存在的元素数。
$arr=array();
if(count($arr)==0){
//your code here
}
试试这个
if(isset($array_name) && !empty($array_name))
{
//not empty
}
试试这个- if (empty($somelist)) {
// list is empty.
}
我经常使用empty($arr)
来做到这一点。
试试这个:
if (!$values1) {
echo "No work has been completed";
} else {
//Do staffs here
}
您需要的是检查 $values 1 是否存在,因此请尝试使用 isset(( 来执行此操作,并且无需使用 $test var:
if(isset($values1))
foreach($values1 as $v1){
echo '<li>'.$v1['Status'].'</li>';
}
或者尝试在 while 之前定义 $values 1:
$values1 = array();
然后检查它是否不为空:
if($values1 != '')
foreach($values1 as $v1){
echo '<li>'.$v1['Status'].'</li>';
}
您所要做的就是获取布尔值 empty($array)
.如果数组为空,它将返回false
。
您可以将empty($varName)
用于多种用途。更多参考 : http://php.net/manual/en/function.empty.php