Я не уверен, является ли это лучшим способом сделать это или нет, но у меня есть таблица jobs
, по которой пользователь может искать на моем веб-сайте. Я хочу сохранить настройки фильтра пользователей в другой таблице под названием filter_prefs
.
Единственный способ, которым я могу это воспринимать, заключается в том, что когда пользователь ищет вакансии, мне приходится выбирать категории работ в зависимости от того, какая категория выберите и запросите базу данных для заданий. Таким образом, когда пользователь «выбирает» флажок, он удаляет списки, но не флажок. Одновременно я сохраняю это как 0
в этом столбце категории filter_pref
, так что если пользователь возвращается и загружает задания, флажок будет загружаться на веб-сайт, но не проверяться, таким образом не вызывая запрос для этой категории в заданиях .
jobs filter_prefs
+-----+-----+----------+------+ +-----+------------+---------+--------+
| jid | pay | category | Title | uid | Contractor | Teacher | Driver |
+-----+-----+----------+------+ +-----+------------+---------+--------+
| 5 | 15 |Contractor|Roofer| | 4 | 0 | 1 | 1 |
| 6 | 20 | Teacher | Bio | +-----+------------+---------+--------+
| 7 | 18 | Driver | LTL |
+-----+-----+----------+------+
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запрашиваю категории из таблицы, мне нужно запросить в таблице filter_prefs
точный столбец, который был запрошен в первом fetch
l. oop оператора, который заставляет меня объединить строку запроса для столбца. Я продолжаю читать, как это самоубийство. это нормально?
$sql="SELECT DISTINCT category FROM jobs WHERE status='o'";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($category);
while($stmt->fetch()){
$sql="SELECT '.$category.' FROM filter_prefs WHERE uid=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $_SESSION['uid']);
$stmt->execute();
$stmt->bind_result($status);
$product_cat ='';
while($stmt->fetch()){
if($status==1){
$product_cat .= // MARK CHECKED, $CATEGORY AS TITLE.
}if($status==0){
$product_cat .= // MARK UNCHECKED, $CATEGORY AS TITLE.
}
}
}
echo $product_cat;
Я действительно новичок в MySQL и PHP, так что я просто не могу понять другой способ сделать это. Есть ли лучший способ сохранить пользовательские настройки, вытащить их и повлиять на состояние веб-сайта? Я не смог найти там материала, который бы показал, как это сделать. Спасибо.