Я пытаюсь получить имя категории из каждого значения массива из базы данных, а затем добавить имя категории в массив $cat_name
, как я могу это сделать с помощью PHP и MySQL?
$array = array(1, 2, 3, 4, 5);
$cat_name = array();
$dbc = mysqli_query($mysqli,"SELECT category
FROM categories
WHERE id = '" . $array . "'");
if (!$dbc) {
print mysqli_error($mysqli);
} else {
while($row = mysqli_fetch_array($dbc)){
$cat_name[] = $row['category'];
}
}
Код выглядит хорошо. Правильно ли я предполагаю, что вы каждый раз получаете ошибку? Я не думаю, что ваш синтаксис SQL правильный. Я использую 'WHERE id IN ('. Implode ($ array, ','). ')'. Не уверен, что это ваш вопрос...
EDIT: у меня есть небольшое подозрение, что вы также можете покончить с вашим циклом и вместо этого просто выпустить вторую выборку для столбца "категории".
$dbc = mysqli_query($mysqli,"SELECT category
FROM categories
WHERE id IN (" . implode(",", $array) . ")");
Однако, когда вы делаете что-то, убедитесь, что ваш массив действительно содержит только целые числа или у вас будет неприятное отверстие для инъекций SQL. Если ваш массив может содержать что-то еще, пропустите его, чтобы избежать всех значений и вставить их в кавычки, прежде чем делать это.
Array ( [0] => 1 [1] => 34 )
сделайте это так:
$dbc = mysqli_query($mysqli,"SELECT category
FROM categories
WHERE id IN (" .implode(",", $array). ")");
Array ( [0] => 1 [1] => 34 )
Array ( [0] => 1 [1] => 34 )