php объединение переменных и доступ к массиву

#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)