2013-11-20 4 views
-2

Может кто-нибудь сказать мне, почему верхняя часть моего кода, размещенном ниже, работает прекрасно, но последний кусок кода просто дает мне ошибку синтаксиса «неопределенная переменная $ secQuestion»Неопределенная переменная, которая четко определена

$result = mysql_query("select id, firstName, lastName, emailAddress, phoneNumber, underGradSchoolId, gradSchoolId, securityQuestionId from usertable where id=$id"); 

while($row = mysql_fetch_assoc($result)){ 
$id=$row["id"]; 
$firstName=$row["firstName"]; 
$lastName=$row["lastName"]; 
$email=$row["emailAddress"]; 
$phone=$row["phoneNumber"]; 
$undergradid=$row["underGradSchoolId"]; 
$gradid=$row["gradSchoolId"]; 
$securityquestionid=$row["securityQuestionId"]; 
} 

$showUnderGrad="select schoolName from schooltable 
where id=$undergradid 
"; 
$result=mysql_query($showUnderGrad,$conn) or die (mysql_error()); 

while($row = mysql_fetch_assoc($result)){ 
$underGrad=$row["schoolName"]; 
} 

$showGradSchool="select schoolName from schooltable 
where id=$gradid 
"; 
$result=mysql_query($showGradSchool,$conn) or die (mysql_error()); 

while($row = mysql_fetch_assoc($result)){ 
$grad=$row["schoolName"]; 
} 

Но это дает мне переменную неопределенную ошибку:

$showSec="select id, securityQuestion, securityAnswer from securityquestiontable 
where id=$securityquestionid 
"; 
$result=mysql_query($showSec,$conn) or die (mysql_error()); 

while($row = mysql_fetch_assoc($result)){ 
$secQuestion=$row["securityQuestion"]; 
$secAnswer=$row["securityAnswer"]; 
} 
+0

Показать полное сообщение об ошибке и линии его. – sectus

+0

Где вы используете эту переменную? – zerkms

+1

Очень ясно, что переменная не определена, это ошибка! –

ответ

1

Там нет строки, возвращенной из вашего запроса, так что в то время как() {...} блок не работает. Он должен быть запущен хотя бы один раз, чтобы определить переменные. Вы можете инициализировать их снаружи (и раньше) в то время цикла, как это:

//add the following 2 lines 
$secQuestion=null; 
$secAnswer=null; 

while($row = mysql_fetch_assoc($result)){ 
$secQuestion=$row["securityQuestion"]; 
$secAnswer=$row["securityAnswer"]; 
} 
+0

Почему существует 'while' вообще? – zerkms

+0

да, кажется, что запрос ограничивает результаты одним вопросом, фильтруя первичный ключ –

Смежные вопросы