PHP-函数未在isset内返回值
我有一个函数调用PHP-函数未在isset内返回值,php,Php,我有一个函数调用find\u student\u by\u id(),其中一个函数调用arg完成下面的代码 function find_student_by_id($student_number){ global $con; $safe_student_number = prep($student_number); $sql = "SELECT * "; $sql .= "FROM studeprofile "; $sql .= "WHERE StudentNumber
find\u student\u by\u id()
,其中一个函数调用arg
完成下面的代码
function find_student_by_id($student_number){
global $con;
$safe_student_number = prep($student_number);
$sql = "SELECT * ";
$sql .= "FROM studeprofile ";
$sql .= "WHERE StudentNumber = '{$safe_student_number}'";
$sql .= "LIMIT 1";
$student_set = mysqli_query($con, $sql);
confirm_query($student_set);
if($student = mysqli_fetch_assoc($student_set)){
return $student;
} else {
return null;
}
}
如果我在页面中的任意位置调用此函数,但如果我在isset
函数中使用它,则此函数不会返回任何值
$student = find_student_by_id('id-201');
如果在isset之外使用,则给我值echo$student['student_number']代码>
但是如果我在isset
中使用它,则不会返回任何值
if(isset($_POST['submit'])){
$student_number = $student['student_number'];
}
完整的内部代码cor.php
<?php
$student = find_student_by_id($_GET['student_number']);
//if(!$student){
// redirect_to('home.php');
//}
//$_SESSION['sn'] = $student['StudentNumber'];
?>
<?php
if(isset($_GET['subject_id'])){
$subject = find_subject_id($_GET['subject_id']);
}
//if(!$subject){
// redirect_to('cor.php');
//}
?>
<?php
if(isset($_POST['submit'])){
$subject_code = $subject['SubjectCode'];
$description = $subject['Description'];
$lec_unit = "";
$lab_unit = "";
$section = "";
$labtime = "";
$sched_time = "";
$room = "";
$instructor = "";
$sem = "";
$sy = "";
$sn = $student['StudentNumber'];
$term = "";
$fn = $student['FirstName'];
$mn = $student['MiddleName'];
$ln = $student['LastName'];
$course = $student['Course'];
$yl = $student['YearLevel'];
$sql = "INSERT INTO registration(";
$sql .= "SubjectCode, Description, LecUnit, LabUnit, ";
$sql .= "Section, LabTime, SchedTime, Room, Instructor, ";
$sql .= "Sem, SY, StudentNumber, Term, FirstName, MiddleName, ";
$sql .= "LastName, Course, YearLevel";
$sql .= ")VALUES(";
$sql .= "'{$subject_code}', '{$description}', '{$lec_unit}', '{$lab_unit}', '{$section}', '{$labtime}', ";
$sql .= "'{$sched_time}', '{$room}', '{$instructor}', '{$sem}', '{$sy}', '{$sn}', ";
$sql .= "'{$term}', '{$fn}', '{$mn}', '{$ln}', '{$course}', '{$yl}'";
$sql .= ")";
$cor = mysqli_query($con, $sql);
if($cor){
redirect_to('cor.php?student_number='.$subject_code);
} else {
die(mysqli_error($con));
}
}
?>
<div>
Student Number : <?php echo $student['StudentNumber']; ?><br />
Name: <?php echo fullname($student); ?>
<a class="popup" href="search-subject-cor.php">Add subject</a>
<br /> <br />
<p><?php echo $subject['SubjectCode']; ?></p>
<p><?php echo $subject['description']; ?></p>
<form method="post" action="cor.php">
<input type="submit" name="submit" value="Add subject" />
</form>
与之相比
<form method="post" action="cor.php">
^
^
并删除问题:)但您在功能范围内或功能范围外使用此isset
的位置您检查了谁设置了$student['student\u number'”?我没有看到任何表格,您使用isset
的目的是什么?我使用一个页面来处理表单中的数据,因此我需要使用isset
来处理错误(未定义变量)
如果您要使用$student\u number
则声明和初始化($student\u number=0
)是一种很好的做法变量超出if条件,然后覆盖该值。否则,您将使用可能未声明的变量。
<form method="post" action="cor.php">
^