有if语句和循环php和mysqli的问题

时间:2017-09-20 21:28:37

标签: php mysqli

这是代码。

include ("Data.php");
if (!$con) {
    die ("connection error". mysqli_connect_error());
}

$sql1 = "SELECT * FROM PMList where AssetNum= '$AssetNum' and Plant= '$Plant';";
$result = mysqli_query($con, $sql1) or die(mysqli_error($con));

if ($result->num_rows > 0)
    $count = 0;
$Task = 1;

while($row = mysqli_fetch_assoc($result))

    if ($row['Task'.$Task] !== NULL) {
        $Count=1000; echo $Count; echo $row['Task'.$Task];
    } 
    else 
        do
            {
                echo "<td bgcolor='#D8D8D8' align='Left'>";
                echo "<font size='2'>";
                echo $row['Task'.$Task];
                echo " </font></td>";
                echo "<td bgcolor='#D8D8D8'><input type='radio' name='Task$Task' value='Yes'>Yes";
                echo "&nbsp;&nbsp;<input type='radio' name='Task$Task' value='No'>No";
                echo "<tr border='0'>";
                $Task++;
            }
        while ($count++ <= 13);
$con->close();
?>

我想做的是。检查我的task1-task15是否为null或空停止我的echo语句,因为它在未分配的任务上添加了单选按钮。最多可以有15个任务。现在当我运行页面时。并且回显计数显示1000.它显示作为任务的行。见图。

Picture 1 没有我的if语句,这就是我得到的

Picture2

我只是需要它才能意识到如果Task为空以停止循环,因为不需要显示额外的单选按钮。请帮助或建议。并且是的,不能免于sql注入,建议使用PDO。提前谢谢

1 个答案:

答案 0 :(得分:0)

使用for循环从1到15进行计数,并在到达第一个空任务时使用break来停止循环。

此外,您应该在循环开始时<tr>,最后</tr>

while ($row = mysqli_fetch_assoc($result)) {
    for ($task = 1; $task <= 15; $task++) {
        if ($row['Task'.$task] === null) {
            break;
        }
        echo "<tr border='0'>";
        echo "<td bgcolor='#D8D8D8' align='Left'>";
        echo "<font size='2'>";
        echo $row['Task'.$task];
        echo " </font></td>";
        echo "<td bgcolor='#D8D8D8'><input type='radio' name='Task$task' value='Yes'>Yes";
        echo "&nbsp;&nbsp;<input type='radio' name='Task$task' value='No'>No";
        echo "</tr>";
    }
}