[英]How to select values where another value is an array?
我正在嘗試選擇另一個 POST 值是數組的值,我不知道我的查詢有什么問題給我這個錯誤。 我想知道剛剛添加到表中的課程。 我在表單中有五個輸入。
Notice: Trying to get property of non-object in C:\Apache\htdocs\xxx\addcourse.php on line 262
這是我的代碼
<?php
if(isset($_POST['Submit'])) {
$code= isset($_POST['code']) ? $_POST['code'] : '';
$coursecode = isset($_POST['coursecode']) ? $_POST['coursecode'] : '';
$both=$code[$x] .' '. $coursecode[$x];
$sqlcourses = "SELECT * FROM courses where course_code='$both' ORDER BY course_id DESC LIMIT 5 ";
$resultcourses = $mysqli->query($sqlcourses);
if ($resultcourses->num_rows > 0) {
while($row = $resultcourses->fetch_assoc()) {
?>
</p>
<p> </p>
<p> </p>
<table width="415" border="0">
<tr>
<?php
$courses=$row["course_code"];
echo $courses;
?>
</div>
</tr>
</table>
<?php
}
}
}
?>
首先,構建一個要檢索的課程代碼數組; 為簡單起見,我要離開邊界檢查:
$codes = [];
foreach ($_POST['code'] as $k => $code) {
$codes[] = $code . ' ' . $_POST['coursecode'][$k];
}
然后,您准備要使用的語句:
$stmt = $mysqli->prepare("SELECT *
FROM courses
WHERE course_code = ?
ORDER BY course_id DESC
LIMIT 5");
其次是主循環:
foreach ($codes as $code) {
$stmt->bind_param('s', $code);
assert($stmt->execute());
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
// ...
}
}
你可以用小的修改代碼嘗試這種方式
首先,您必須將字符串轉換為數組以獲取數組中的索引 (x)
$code = explode(" ", $code);
$course = explode(" ", $coursecode);
foreach ($code as $cd => $x) {
$both = $code[$x].' '.$coursecode[$x];
$sqlcourses = "SELECT * FROM courses where course_code='$both' ORDER BY course_id DESC LIMIT 5 ";
$resultcourses = $mysqli->query($sqlcourses);
}
其次,您可以根據您的情況選擇變量 $code 或 $course 作為循環長度
foreach ($course as $crs => $x) {
your condition...
}
希望能幫到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.