0

notenrolled.phpこのコードは、入力値が正しい場合でもリダイレクトするだけです。入力した値が正しければ処理を続行してほしい。私のコードに何か問題がありますか?

<?php
//Setup connection to the database 
$connect = mysql_pconnect("localhost", "root", "") 
or die(mysql_error()); 

//Connect to the database 
mysql_select_db("dbgis", $connect) or die(mysql_error());

$query  = "SELECT * from tbl_student WHERE stud_id= '$stud_id' ";
$result = mysql_query($query);
$totalrows = mysql_num_rows($result);


while($row = mysql_fetch_array($result))
{
    header("Location: yesno.php");
}

if($totalrows != 0)
{
    header("Location: notenrolled.php");
}

?>

を試してみましたdie();が、リダイレクト ループ エラーが表示されるだけなので、動作しているようyesno.phpです。そのため、コードを間違ったページに配置した可能性があると思い.phpます。

フローは次のとおりです。ページ内の検索フォームを使用して検索guard.phpできるページがあります。query(stud_id)次に、クエリが存在するかどうかを確認し、存在しないnotenrolled.php場合は、クエリが見つかった場合は elseにリダイレクトして、 yesno.php.

4

6 に答える 6

1

Location ヘッダーを設定するときは、必ず直後にexitまたはを続けますdie()

(自分が何をしているのかを本当に理解している場合にのみ、すぐに使用することはできませんが、自己責任で行ってください。)

于 2012-05-25T08:41:00.780 に答える
0

それを行う正しい方法は次のとおりです。

if($totalrows>0)
  header("Location: yesno.php");

else
 header("Location: notenrolled.php");
于 2012-05-25T08:44:40.543 に答える
0

これを試して

if($totalrows == 0)
{
    header("Location: notenrolled.php");
    die();
}
于 2012-05-25T08:45:04.510 に答える
0
  1. whileレコードがあるかどうかを評価するためだけに使用しないでください。

    while($row = mysql_fetch_array($result))
    {
      header("Location: yesno.php");
    }
    
  2. あなたのコードは常に次のようにリダイレクトされますnotenrolled.php

    if($totalrows != 0)
    {
        header("Location: notenrolled.php");
    }
    //this block will always be true if your $totalrows is greater than 0
    

解決策:$totalrowsが 0 より大きいかどうかを確認します

if ($totalrows > 0){
   header("Location: yesno.php");
} else {
   header("Location: notenrolled.php");
}
于 2012-05-25T09:01:59.007 に答える
0
if ($totalrows > 0)
{   // has results
    header("Location: yesno.php");
    exit(0);
}
else
{   // no result
    header("Location: notenrolled.php");
    exit(0);
}
于 2012-05-25T08:47:28.313 に答える
0

php 関数mysql_affected_rowsを使用して、 SELECTで影響を受ける行の数を確認できます。

if (mysql_affected_rows() == 0){
  header("Location: notenrolled.php");
} else {
    header("Location: yesno.php");
}
于 2012-05-25T09:58:28.880 に答える