Php 输入if语句时未显示结果
这是我遇到问题的PHP代码部分:Php 输入if语句时未显示结果,php,html,Php,Html,这是我遇到问题的PHP代码部分: $query = "SELECT * FROM clients where idcard = '$idcard'"; $result = mysqli_query($dbc, $query) or die("Error quering database."); if(mysqli_fetch_array($result) == False) echo "Sorry, no clients found"; while($row = mysqli_fetch_
$query = "SELECT * FROM clients where idcard = '$idcard'";
$result = mysqli_query($dbc, $query)
or die("Error quering database.");
if(mysqli_fetch_array($result) == False) echo "Sorry, no clients found";
while($row = mysqli_fetch_array($result)) {
$list = $row['first_name'] . " " . $row['last_name'] . " " . $row['address'] . " " . $row['town'] . " " . $row['telephone'] . " " . $row['mobile'];
echo "<br />";
echo $list;
}
$query=“从客户端选择*,其中idcard='$idcard';
$result=mysqli\u查询($dbc,$query)
或者死(“错误查询数据库”);
如果(mysqli_fetch_array($result)==False)回显“对不起,找不到客户端”;
while($row=mysqli\u fetch\u数组($result)){
$list=$row['first_name']。$row['last_name']。$row['address']。$row['town']。$row['telephone']。$row['mobile'];
回声“
”;
echo$列表;
}
即使我插入了一个现有的idcard值,但当存在if语句时,我没有得到任何输出,错误的idcard也会显示“对不起,找不到客户机”。但是,如果我删除if语句,如果我输入现有的idcard,数据将显示ok
你能告诉我密码有什么问题吗
谢谢mysqli_fetch_array()
从数据库中获取项目
这意味着您的if()
代码从数据库中获取第一项
然后,当您从while()
条件再次调用mysqli\u fetch\u array()
时,第一个项目已经被提取,您正在尝试提取第二个项目;这是不存在的
您必须确保使用来自
mysqli\u fetch\u array()
的结果,而不是徒劳地调用它一次;或者,您也可以使用以下函数(引用):
返回结果集中的行数
mysqli\u fetch\u array()
这意味着您的if()
代码从数据库中获取第一项
然后,当您从while()
条件再次调用mysqli\u fetch\u array()
时,第一个项目已经被提取,您正在尝试提取第二个项目;这是不存在的
您必须确保使用来自mysqli\u fetch\u array()
的结果,而不是徒劳地调用它一次;或者,您也可以使用以下函数(引用):
返回结果集中的行数
想象你在口袋里放了一些钱。
最后,你想到了一个主意,看看你是否还有钱。
你把它拿出来数一数。好的。
你手里还拿着它们,决定从口袋里拿出来。哎呀!口袋是空的
那是你的问题
要查看是否从数据库中获取了任何行,可以使用mysqli\u num\u rows()
。它将返回账单数量,而不从口袋中取出 想象你在口袋里放了一些钱。
最后,你想到了一个主意,看看你是否还有钱。
你把它拿出来数一数。好的。
你手里还拿着它们,决定从口袋里拿出来。哎呀!口袋是空的
那是你的问题
要查看是否从数据库中获取了任何行,可以使用mysqli\u num\u rows()
。它将返回账单数量,而不从口袋中取出 使用mysqli_num_rows
计算结果:
if(mysqli_num_rows($result) == 0) echo "Sorry, no clients found";
使用mysqli\u num\u rows
计算结果:
if(mysqli_num_rows($result) == 0) echo "Sorry, no clients found";
使用mysqli_num_rows()
测试是否有返回的内容。使用mysqli_num_rows()
测试是否有返回的内容。$query=“SELECT*FROM clients,其中idcard='$idcard';
$query = "SELECT * FROM clients where idcard = '$idcard'";
$result = mysqli_query($dbc, $query)
or die("Error quering database.");
if(mysqli_num_rows($result) == 0) {
echo "Sorry, no clients found";
}else{
while($row = mysqli_fetch_array($result)) {
$list = $row['first_name'] . " " . $row['last_name'] . " " . $row['address'] . " " . $row['town'] . " " . $row['telephone'] . " " . $row['mobile'];
echo $list . "<br />";
}
}
$result=mysqli\u查询($dbc,$query)
或者死(“错误查询数据库”);
if(mysqli_num_rows($result)==0){
echo“对不起,找不到客户端”;
}否则{
while($row=mysqli\u fetch\u数组($result)){
$list=$row['first_name']。$row['last_name']。$row['address']。$row['town']。$row['telephone']。$row['mobile'];
echo$list.“
”;
}
}
试试这个
已编辑:添加了结束括号。$query=“从客户机中选择*,其中idcard='$idcard';
$result=mysqli\u查询($dbc,$query)
或者死(“错误查询数据库”);
if(mysqli_num_rows($result)==0){
echo“对不起,找不到客户端”;
}否则{
while($row=mysqli\u fetch\u数组($result)){
$list=$row['first_name']。$row['last_name']。$row['address']。$row['town']。$row['telephone']。$row['mobile'];
echo$list.“
”;
}
}
试试这个
编辑:添加了结束括号。问题是,您试图使用mysqli\u fetch\u数组
查询结果数mysqli_fetch_array
将获取第一个结果,将其与false进行比较,然后丢弃它。然后,下一个mysqli\u fetch\u数组将获取不存在的第二个结果
如果要检查是否找到了任何客户机,可以像这样使用mysqli\u num\u rows
:
$idcard = mysqli_escape_string($dbc, $idcard); // See below: Prevents SQL injection
$query = "SELECT * FROM clients where idcard = '$idcard'";
$result = mysqli_query($dbc, $query) or die("Error quering database.");
if(mysqli_num_rows($result) == 0) {
echo "Sorry, no clients found";
} else {
while($row = mysqli_fetch_array($result)) {
// Do whatever you want
}
}
如果$idcard
是用户提供的值,请注意SQL注入攻击问题是,您试图使用mysqli\u fetch\u array
查询结果数量mysqli_fetch_array
将获取第一个结果,将其与false进行比较,然后丢弃它。然后,下一个mysqli\u fetch\u数组将获取不存在的第二个结果
如果要检查是否找到了任何客户机,可以像这样使用mysqli\u num\u rows
:
$idcard = mysqli_escape_string($dbc, $idcard); // See below: Prevents SQL injection
$query = "SELECT * FROM clients where idcard = '$idcard'";
$result = mysqli_query($dbc, $query) or die("Error quering database.");
if(mysqli_num_rows($result) == 0) {
echo "Sorry, no clients found";
} else {
while($row = mysqli_fetch_array($result)) {
// Do whatever you want
}
}
如果$idcard
是用户提供的值,请注意SQL注入攻击尝试改用mysqli_num_rows($result)==0
。您的代码也有一个{
,但没有}
。请尝试改用mysqli\u num\u行($result)==0
。您的代码也有一个{
,但不是}
。如果$idcard不是用户提供的值怎么办?除了跨站点脚本、非OP编写的软件中的服务器端漏洞、社会工程、宿主的社会工程、DNS缓存操纵、,