#php #mysql #php-5.6
#php #mysql #php-5.6
Вопрос:
возможно ли что-то подобное?
for ($i = 1; $i <= 15; $i ) {
$var = "bild" . $i;
if (!empty ($row->bild.$i)) {
echo '
<div class="item">
<img border="no" class="bildschatten" src="include/images/projekte/'.$row->bild . $i.'" />
</div>
';
}
}
как это должно выглядеть правильно? проблема в том:
Я извлекаю объекты из базы данных mysql, в этой таблице каждый объект имеет 15 изображений
bild1 .. bild15
Теперь я хочу перебрать эти 15 изображений и хочу проверить, является ли столбец пустым или нет.
проблема, с которой я столкнулся, заключается в следующем:
$row->bild.$i
это не содержит значения столбца bild1.. bild15 … он содержит только значение $i
Спасибо
Комментарии:
1. попробуйте
$row->$var
. для получения более подробной информации ознакомьтесь с руководством2. таинственный пробовал это раньше… его работа сейчас извините за этот глупый вопрос
3. @Felix подумайте о том, чтобы нормализовать вашу таблицу.
Ответ №1:
Этот код должен работать:
$row->{'bild'.$i}
Ответ №2:
Это называется переменной переменных, вам нужно получить доступ к чему-то вроде этого $row->$var
.
Полное решение:
for ($i = 1; $i <= 15; $i ) {
$var = "bild" . $i;
if (!empty ($row->$var)) {
echo '
<div class="item">
<img border="no" class="bildschatten" src="include/images/projekte/'.$row->$var.'" />
</div>
';
}
}
Для получения более подробной информации ознакомьтесь с руководством.
Ответ №3:
Вы можете получить результат в виде массива uning
$row = db_fetch_array($result)
а затем доступ к
$var = "bild" . $i;
if (!empty ($row[$var])) {
Комментарии:
1. тогда я получил это:
Fatal error: Cannot use object of type stdClass as array in
строка var — это:while ($row = db_fetch_object($sql)) {
2. @Felix . как указано в начале ответа, вы должны использовать выборку результата в виде массива с использованием db_fetch_array($result)