2012-05-25 3 views
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, если запрос найден, я хочу, чтобы он перешел к yesno.php.

ответ

1

Когда вы устанавливаете заголовок местоположения, вы ВСЕГДА незамедлительно следуете за ним с помощью exit или die().

(только если вы действительно понимаете, что вы делаете, вы могли бы не сразу использовать, но на свой страх и риск.)

0

Правильный способ сделать это заключается в следующем:

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

else 
header("Location: notenrolled.php"); 
0

попробовать это

if($totalrows == 0) 
{ 
    header("Location: notenrolled.php"); 
    die(); 
} 
0
if ($totalrows > 0) 
{ // has results 
    header("Location: yesno.php"); 
    exit(0); 
} 
else 
{ // no result 
    header("Location: notenrolled.php"); 
    exit(0); 
} 
+0

-------- --------- РЕДАКТИРОВАТЬ я попытался умереть(); и кажется, что он работает, потому что он просто говорит об ошибке с перенаправлением с yesno.php. Так что, я думаю, я мог бы поставить код на неправильной странице .php. Поток выглядит следующим образом: у меня есть страница guard.php, где я мог бы искать запрос (stud_id), используя мою форму поиска на странице. Затем я хочу проверить, существует ли запрос, и если это не так, я хочу, чтобы я перенаправлял файл notenrolled.php else, если запрос найден, я хочу, чтобы он перешел к yesno.php. –

+0

Да, вы перенесли перенаправление на yesno.php в неправильном месте, оно не должно быть в цикле while, особенно когда после него нет die() или exit(). если вы не положите die() или exit() после него, он не будет просто идти, он сначала завершит цикл. – candyleung

0
  1. Вы должны не используйте while, чтобы оценить, есть ли запись.

    while($row = mysql_fetch_array($result)) 
    { 
        header("Location: yesno.php"); 
    } 
    
  2. Ваш код всегда перенаправляет на notenrolled.php из-за codition:

    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"); 
} 
+0

Я попробовал это, и я также попытался включить die(); или выход (0); и, похоже, он работает, потому что он просто говорит, что ошибка цикла перенаправления или заголовок уже отправили ошибку с yesno.php. Так что я думаю, что мог бы поставить код в неправильную страницу .php или что-то в этом роде. У меня есть страница guard.php, где я мог искать запрос (stud_id), используя мою форму поиска на странице. Затем я хочу проверить, существует ли запрос, и если это не так, я хочу, чтобы я перенаправлял файл notenrolled.php else, если запрос найден, я хочу, чтобы он перешел к yesno.php. –

0

вы можете использовать PHP функция mysql_affected_rows, чтобы увидеть номер с пораженных строк в ВЫБОР,

if (mysql_affected_rows() == 0){ 
    header("Location: notenrolled.php"); 
} else { 
    header("Location: yesno.php"); 
}