Новичок здесь ... Я пытался адаптировать свой код от hereпредварительно заполнить выпадающий список меню с несколькими вариантами из базы данных MySQL
Список заполняется должным образом, но я не могу заставить его предварительно выбрать. Что я делаю не так? Заранее спасибо!
$q = "SELECT cat_id FROM category_user WHERE cat_id=$d";
while ($row = mysqli_fetch_array($q)) {
$cat = (int)$row['cat_id'];
}
$q = "SELECT cat_id, cat FROM category";
$r = mysqli_query ($dbc, $q);
if (mysqli_num_rows($r)> 0) {
while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
echo "<option value=\"$row[0]\"";
$selected = '';
$cid=(int)$row[0];
if ($cid=$cat) {
$selected='selected="selected"';
echo $selected;
echo ">$row[1]</option>\n";
}else{
//Check for stickyness
if (isset($_POST['category'])&&($_POST['category']== $row[0]))
echo 'selected="selected"';
echo ">$row[1]</option>\n";
}
}
}
category
---------------
|cat_id | cat |
---------------
category_user
-------------------------
|cu_id | user_id | cat_id|
-------------------------
Ваш первый запрос возвращает cat_id, когда вы поставляете cat_id ... так что вы можете удалить это. На что он должен быть предварительно заполнен? Что-то из базы данных или что-то, отправленное через $ _POST? – thelastshadow
woops! В первом запросе я сделал boo-boo. таблица должна читать «category_user», поскольку я сопоставляю числа из двух таблиц. Извините, что я дорка. – artsyL
ОК, я вижу ваше изменение, но ваш столбец должен быть ошибочным в предложении select или where вашего первого запроса. Даже если вы используете другую таблицу, вы получаете тот же столбец, который вы указываете в предложении where ... 'cat_id' – amaster