Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Else语句不起作用_Php - Fatal编程技术网

Php Else语句不起作用

Php Else语句不起作用,php,Php,当正确输入军号时,下面的代码显示数据库中的数据,这是一件好事。但糟糕的是,很明显,我遇到的问题是,当它是空的或者军号不正确时,它会显示一个空白页。假设它与那里的else语句相呼应,该语句没有找到军号。我不知道这里出了什么事 //The html code <form method="post" action="dutydata.php"> <input type="text" placeholder="provide unique code"> <input typ

当正确输入军号时,下面的代码显示数据库中的数据,这是一件好事。但糟糕的是,很明显,我遇到的问题是,当它是空的或者军号不正确时,它会显示一个空白页。假设它与那里的else语句相呼应,该语句没有找到军号。我不知道这里出了什么事

//The html code
<form method="post" action="dutydata.php">
<input type="text" placeholder="provide unique code">
<input type="submit" name="verify">
</form>
//the php code
<?php
$conn = mysqli_connect("localhost", "root", "", "army_duty");
$set = $_POST['verify'];
if($set) {
    $show = "SELECT * FROM profile where military_number = '$set' ";
    $result = mysqli_query($conn, $show);
    while ($row = mysqli_fetch_array(result)) {
        echo $row['military_number'];
        echo $row['first_name'];
        echo $row['last_name'];
        echo $row['paygrade'];
        echo $row['duty_status'];
        echo $row['photo'];
        echo "<br/>";
     }
}  
else {
    echo "Military Number not found";
}
?>
//html代码
//php代码

我发现了一些错误。首先,文本输入必须在第2行有一个名称。 接下来检查按钮是否在第8行设置(或单击),然后从第2行的文本输入中创建变量。在while循环中,您留下了一个$for结果

<form method="post" action="dutydata.php">
<input name="something" type="text" placeholder="provide unique code">
<input type="submit" name="verify">
</form>
//the php code
<?php
$conn = mysqli_connect("localhost", "root", "", "army_duty");
if(isset($_POST['verify'])) {
$set = $_POST['something'];
$show = "SELECT * FROM profile WHERE military_number = '$set' ";
$result = mysqli_query($conn, $show);
while ($row = mysqli_fetch_array($result)) {
    echo $row['military_number'];
    echo $row['first_name'];
    echo $row['last_name'];
    echo $row['paygrade'];
    echo $row['duty_status'];
    echo $row['photo'];
    echo "<br/>";
 }
 } else {echo "Military Number not found";}
?>

//php代码

如果语句不正确,您可以选择
。使用
if
语句检查varaiable$集合中是否有任何值。无论该值是否为有效的军号,它都是。因此它总是验证TRUE,并且不会触发
else
语句


有关
if
语句的更多信息,请阅读。

此代码中有几个基本错误。包括我们使用submit按钮检查isset upin submission的事实。它不包含值。你想做的是将$set设置为我所说的“唯一代码”

以下代码应足以作为测试解决方案

//html代码

 //Remember if your form is on the same page as your PHP, you can set action to ""
 <form method="post" action="dutydata.php">
 <input type="text" placeholder="provide unique code" name="unique_code">
 <input type="submit" name="verify">
 </form>
//记住,如果表单与PHP位于同一页面上,则可以将操作设置为“”
//php代码

<?php
$conn = mysqli_connect("localhost", "root", "", "army_duty");
$set = $_POST['unique_code'];
if(isset($set)) {
$show = "SELECT * FROM profile WHERE military_number = '{$set}' ";
$result = mysqli_query($conn, $show);
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['military_number'];
    echo $row['first_name'];
    echo $row['last_name'];
    echo $row['paygrade'];
    echo $row['duty_status'];
    echo $row['photo'];
    echo "<br/>";
 }
 }  
else {
echo "Military Number not found";
}
?>


如果
应该是小写。此代码也对sql InjectionOps开放,但它没有看到。我已经纠正了它,虽然它不是问题。仍然不起作用是的,我知道它对sql注入是开放的,我现在正在测试
if(isset($set))
这应该是一个注释。没有答案。那么你不应该留下答案。你很快就会得到名声的,巴德。