Здравствуйте. Имеется такой код, для вывода данных из MySQL, PHP: while($row_stuff = mysql_fetch_assoc($info_stuff)){ $export = $row_stuff['images']; $explode = explode(",", $export); $explode_new = array_diff($explode, array('')); $image_stuff = current($explode_new); if($image_stuff == "") { $image_stuff = "images/No-Avatar.png"; } else{ $image_stuff = "images/image_stuff/" . $image_stuff; } // ниже производится вывод данных(мне необходимок какое-то количество вывести церез цикл) $stuff_group .= '<img src="'.$image_stuff.'" /><br/>Название: '.$row_stuff['stuff_name'].' <br/>Описание: '.$row_stuff['stuff_description'] . '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . '<br>'; } Я хочу реализовать загрузку определенного кол-ва изображения и вывод их. Загрузку еще дополнительных изображений я написал. Меня интересует их вывод, где именно я пометил, исключительно изображений таблицой. Массив $row_stuff['images'] С помощью echo я их вывести могу, но мне необходимо заносить данные в переменную. PHP: echo "<center><table>"; foreach ($explode_new as $k => $images){ echo "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>"; } echo "</table></center>"; Подскажите, пожалуйста, каким образом изображения с массива выводить таблицой. Данные записаны в таком виде в базу данных, именно изображений 1.png,2.png,3.png, и так далее.
Да, проблема в 4 строчке второго кода, передать значение в переменную, а потом построить таблицу в 13 строчке.
Проблема в том, что если я присваиваю значение переменной таким образом PHP: echo "<center><table>"; foreach ($explode_new as $k => $images){ $test = "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>"; } echo "</table></center>"; То у меня страница не отображается.
PHP: $test = "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>"; найди отличия PHP: $test = "<tr><img src='images/image_stuff/" . $images ."'/></tr>";
У меня почему-то выводятся данные даже у того товара, у которого нет изображения, у первого выводится нормально, у второго товара его нет(изображения) у третьего имеется одно изображение, а выводится два. PHP: while($row_stuff = mysql_fetch_assoc($info_stuff)){ $stuff_id = $row_stuff['id']; $export = $row_stuff['images']; $explode = explode(",", $export); $explode_new = array_diff($explode, array('')); $image_stuff = current($explode_new); foreach ($explode_new as $k => $images){ $stuff_image .= "<tr><img style='width:150px;height:200px;' src='images/image_stuff/" . $images ."'/></tr>"; } if($stuff_image == "") { $image_stuff = "<img src='images/No-Avatar.png'"; } else{ $image_stuff = $stuff_image; } $stuff_group .= '<center><table>'.$image_stuff.'</table></center><br> <form action="" name="add_images" method="post" enctype="multipart/form-data"> <input type="text" name="hidden" value="'.$stuff_id.'"> <input type="file" name="filename"><br> <input type="submit" name="add_stuff" value="Добавить изображение"> </form><br/>Название: '.$row_stuff['stuff_name'].' <br/>Описание: '.$row_stuff['stuff_description'] . '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . "<br/><br/>"; } Вот так выглядит структура А вот так вывод Вывод массива explode_new Array ( [0] => 28687628.jpg ) Array ( ) Array ( [0] => 41978375.jpg )
надо просто проследить за выполнением программы, проконтролировать всё, сделать отладку http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html
Я уже всю голову сломал с этой головоломкой, может есть другой способ построить правильную таблицу? Не прошу код, а только указать направление.
начни писать код заново, по маленьким шагам и проверяй промежуточный результат, как только что-то пойдёт не так ты поймёшь какое изменение ты сделал и оно всё накрыло медным тазом, в этом и есть профессионализм, просто всё перепроверить и проследить за программой, есть не совпадение как работает компьютер и то что ты задумал в голове. это долго и нудно, нужно много прочитать про отладку, всё выучить при этом ещё перечитать документацию по всем функциям что ты используешь, понять и запомнить, потом опять всё перепроверять, через var_export выводить каждый шаг, смотреть за результатом.
Дело все в цикле while, что его нужно закрыть и потом уже разбирать массив, я так могу сделать только с 1 id, как их вывести все PHP: while($row_stuff = mysql_fetch_assoc($info_stuff)){ $stuff_id = $row_stuff['id']; $export = $row_stuff['images']; } // необходимо закрыть чтобы разобрать $explode = explode(",", $export); $explode_new = array_diff($explode, array('')); $image_stuff = current($explode_new); foreach ($explode_new as $k => $image){ $stuff_image .= "<tr><img style='width:150px;height:200px;' src='images/image_stuff/" . $image ."'/></tr>"; } if($stuff_image == "") { $image_stuff = $row_stuff['images']; } else{ $image_stuff = $stuff_image; } $stuff_group .= $image_stuff.' <form action="" name="add_images" method="post" enctype="multipart/form-data"> <input type="text" name="hidden" value="'.$stuff_id.'"> <input type="file" name="filename"><br> <input type="submit" name="add_stuff" value="Добавить изображение"> </form><br/>Название: '.$row_stuff['stuff_name'].' <br/>Описание: '.$stuff_description_r . '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . "<br/><br/>"; }
зачем? что мешает в цикле ещё циклов наплодить, хоть несколько и разной нужной вложенности? --- Добавлено --- Вот, принеси в жертву циклы https://php.ru/forum/threads/vyvod-dereva-uslug-s-podgruppami.58784/#post-472464
Ща я тебе дам ссылку а ты там смотри и позновай --- Добавлено --- клац сюда. Короче 27 минута 34 секунда. Посмотри как чувак выводит циклы php в html коде, ) И тебе понравится