当比较数据库中的数据时,php中的选择条件不起作用
我有密码当比较数据库中的数据时,php中的选择条件不起作用,php,Php,我有密码 <?php require_once 'DB_Functions.php'; $response = array(); $db = new DB_Functions(); if (isset($_POST['no']) && isset($_POST['semester'])) { $no = $_POST['no']; $semester = $_POST['semester']; $list_matkul = array();
<?php
require_once 'DB_Functions.php';
$response = array();
$db = new DB_Functions();
if (isset($_POST['no']) && isset($_POST['semester'])) {
$no = $_POST['no'];
$semester = $_POST['semester'];
$list_matkul = array();
$response['error'] = false;
$sks = $db->getSks($no,$semester);
$list_matkul = $db->getAllMatkulMhs($no,$semester);
$response['sks'] = array_values($sks);
//check metode penelitian
if($semester >= 5) {
if (array_values($sks) >= 96) {
$names = array_column($list_matkul, 'nama_matkul');
$metpen = in_array('matkul_1', $names);
if ($metpen == true){
$response['metpen'] = "Mengambil Mata Kuliah Metodologi Penelitian TI, mencari Topik Skripsi pada Semester ".($semester+1);
}
}}
echo json_encode($response,JSON_PRETTY_PRINT);
}
?>
为什么我在array_values($sks)>=96的选择条件仍然可以运行,从上面的json中我们可以看到array_values($sks)是24,并且低于96,这不符合条件要求,但是当我使用conn->prepare(“从ipk_mhs中选择没有用户id=”的sks)时,array_values返回一个没有键的数组,只有索引。 您应该使用
$sks[索引或键]
例如:
$array=array(“大小”=>“XL”,“颜色”=>“金色”);
$array[“size”]
输出将是:“XL”array\u值不返回数字,因此您无法执行类似=”的比较,因为它返回的数组类似于您要查找的$sks[0]或array\u值($sks)[0]。这意味着数组上的第一个值
{
"error": false,
"sks": [
24
],
"metpen": "Mengambil Mata Kuliah Metodologi Penelitian TI, mencari Topik Skripsi pada Semester 6"
}
public function getSks($mhs,$semester) {
$stmt = $this->conn->prepare("SELECT sks FROM ipk_mhs WHERE no_user_id = ? AND semester <= ?");
$stmt->bind_param("ss", $mhs, $semester);
if ($stmt->execute()) {
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
}}