Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 基于单行的MySQL的IF-ELSE_Php_Mysql_Mysqli - Fatal编程技术网

Php 基于单行的MySQL的IF-ELSE

Php 基于单行的MySQL的IF-ELSE,php,mysql,mysqli,Php,Mysql,Mysqli,我尝试从SQL表中获取值“entryScans”,并根据IF-ELSE情况将其发送到$output。我做错了什么 <?php include ('config.php'); $TicketNo=$_POST["TicketNo"]; $hash=$_POST["hash"]; $sql = "SELECT TicketNo,hash,entryScans FROM `Tickets` WHERE `TicketNo` = '$TicketNo' AND `hash` = '$hash'

我尝试从SQL表中获取值“entryScans”,并根据IF-ELSE情况将其发送到$output。我做错了什么

<?php

include ('config.php');
$TicketNo=$_POST["TicketNo"];
$hash=$_POST["hash"];

$sql = "SELECT TicketNo,hash,entryScans FROM `Tickets` WHERE `TicketNo` = '$TicketNo' AND `hash` = '$hash'" or die(mysql_error());
$result = mysql_query($sql);
$row=mysql_num_rows($result);

if($row['entryScans'] = 0){
$output="ok";
}
else if ($row['entryScans'] > 0) {
 $output="maybe";
else{
 $output="error";
}
print(json_encode($output));
mysql_close();

?>
您正在做

if($row['entryScans'] = 0){
它有两个问题,
=
是赋值,
=
测试等于。第二部分是,您在

$result = mysql_query($sql);
$row=mysql_num_rows($result);
因此,
$row
是行数,
$result
是查询结果

所以要检查结果集中的行数

if($row == 0){
等等

更新:

如果希望使用列entryScans的值,则需要将调用
mysql\u num\u rows()
更改为
mysql\u fetch\u assoc()
,因此

$row=mysql_fetch_assoc($result);

然后,您可以将代码的其余部分留给使用
$row['entryScans']

您没有处理结果。您只需获得
$row
变量中的总行数

您需要通过循环方法处理查询结果

这是一个例子

while ($row = mysql_fetch_array($result, MYSQL_NUM)) 
{
    if($row['entryScans'] = 0)
    {
      $output="ok";
    }
    else if ($row['entryScans'] > 0) 
    {
      $output="maybe";
    }
    else
    {
    $output="error";
    }
}

希望这对您有用。

一个等号用于赋值(
=
),两个等号用于比较(
=
)。停止使用
mysql.*
它在PHP7中被删除。查看
mysqli.*
PDO
同样,您是完全开放的SQL注入,直接这样获取用户数据。