0

これは初めてですが、検索しても成功しませんでした。スクリプトで次のエラーが発生します。

「注意: 未定義の定数 sStatus の使用 - 'sStatus' と見なされます」...

「警告: mysql_numrows() は、パラメーター 1 がリソースであると想定しており、ブール値で指定されています」...

後者が最初の問題によるものであることを願っています。さらにコードが必要な場合はお知らせください。ただし、関連する部分は次のとおりです。

line31:

$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」のいずれかになります。同じ変数がスクリプトのさらに下で使用され、「0」または「1」を「open」または「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

エラー 1:

43 行目のsStatus代わりの使用法。$sStatus

エラー 2:

関数は と呼ばれmysql_num_rows()ます。

余談ですが、関数は使用しないでくださいmysql_*代わりに、特にプリペアド ステートメントの場合はPDOを使用してください。これにより、アプリケーションのセキュリティも向上します。

于 2013-02-25T12:55:35.433 に答える
0

「$」がありません:

if ($sStatus == "all") 

これで警告が消えるはずです。また、2 番目のクエリに一重引用符がありません。

$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 に答える