0

对此是新的,但已经搜索但没有成功。我的脚本出现以下错误:

“注意:使用未定义的常量 sStatus - 假定为 'sStatus'”...

“警告:mysql_numrows() 期望参数 1 是资源,布尔值在”...

我希望后者是由于第一个问题。如果您需要更多代码,请告诉我,但它涉及的部分是:

第 31 行:

$sStatus = $_POST['sStatus'];

第 43 至 53 行:

if (sStatus == "all")
{
    $query="SELECT * FROM tickets WHERE RequestBy='$sName'";
}
else
{
    $query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus";
}
//put query in result and count rows ready to loop for table display
$result=mysql_query($query);
$num=mysql_numrows($result);

sStatus 从主页上的表单中提取,为“0”、“1”或“all”。相同的变量在脚本中进一步使用,if 将“0”或“1”更改为“open”或成功“关闭”。

非常感谢任何帮助。马丁

4

4 回答 4

1

更改$sStatus = $_POST['sStatus'];为:$sStatus = isset($_POST['sStatus'])?$_POST['sStatus']:"";

更改if (sStatus == "all")if ($sStatus == "all")=> 缺失$

更改$num=mysql_numrows($result);$num=mysql_num_rows($result);

于 2013-02-25T12:55:01.770 回答
0

错误一:

在第 43 行使用 ofsStatus而不是。$sStatus

错误2:

该函数被调用mysql_num_rows()

附带说明:请不要使用mysql_*函数。请改用PDO,尤其是对于准备好的语句,这也将提高应用程序的安全性。

于 2013-02-25T12:55:35.433 回答
0

您缺少一个“$”:

if ($sStatus == "all") 

那应该摆脱警告。此外,您在第二个查询中缺少单引号:

$query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus'";

希望这可以帮助。

于 2013-02-25T12:55:39.873 回答
0
 if ($sStatus == "all")
 {
  $query="SELECT * FROM tickets WHERE RequestBy='$sName'";
 }
else
{
$query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus";
}

你错过了 $sStatus "$",这就是为什么它假设它是一个常数。我同意,您应该使用 PHP PDO对象进行数据库操作,它使查询非常容易使用..

于 2013-02-25T12:57:43.923 回答