За последние 24 часа нас посетил 51431 программист и 1759 роботов. Сейчас ищут 903 программиста ...

Вывод данных, цикл.

Тема в разделе "PHP для новичков", создана пользователем Salvat, 29 июн 2016.

  1. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Здравствуйте. Имеется такой код, для вывода данных из MySQL,
    PHP:
    1. while($row_stuff = mysql_fetch_assoc($info_stuff)){
    2.                 $export = $row_stuff['images'];
    3.                 $explode = explode(",", $export);
    4.                 $explode_new = array_diff($explode, array(''));
    5.                 $image_stuff =  current($explode_new);
    6.             if($image_stuff == "") {
    7.                 $image_stuff = "images/No-Avatar.png";
    8.             }
    9.             else{
    10.                 $image_stuff = "images/image_stuff/" . $image_stuff;
    11.             }
    12.             // ниже производится вывод данных(мне необходимок какое-то количество вывести церез цикл)
    13.                 $stuff_group .= '<img src="'.$image_stuff.'" /><br/>Название: '.$row_stuff['stuff_name'].'
    14.                <br/>Описание: '.$row_stuff['stuff_description'] .
    15.                 '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . '<br>';
    16.         }
    Я хочу реализовать загрузку определенного кол-ва изображения и вывод их. Загрузку еще дополнительных изображений я написал. Меня интересует их вывод, где именно я пометил, исключительно изображений таблицой. Массив $row_stuff['images'] С помощью echo я их вывести могу, но мне необходимо заносить данные в переменную.

    PHP:
    1. echo "<center><table>";
    2.                foreach ($explode_new as $k => $images){
    3.      
    4.                        echo "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>";
    5.                }
    6. echo "</table></center>";
    Подскажите, пожалуйста, каким образом изображения с массива выводить таблицой. Данные записаны в таком виде в базу данных, именно изображений
    1.png,2.png,3.png, и так далее.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ну вот как ты во втором листинге кода показал и выводи, или есть с этим проблемы?
     
  3. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Да, проблема в 4 строчке второго кода, передать значение в переменную, а потом построить таблицу в 13 строчке.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ну присваивай переменной тогда, в чём проблема?
     
  5. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Проблема в том, что если я присваиваю значение переменной таким образом


    PHP:
    1. echo "<center><table>";
    2.                foreach ($explode_new as $k => $images){
    3.    
    4.                      $test = "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>";
    5.                }
    6. echo "</table></center>";
    То у меня страница не отображается.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Включен, просто пустая страница.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. $test = "<tr><img src='images/image_stuff/" . $images, '' ."'/></tr>";
    найди отличия
    PHP:
    1. $test = "<tr><img src='images/image_stuff/" . $images ."'/></tr>";
     
    Salvat нравится это.
  9. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    У меня почему-то выводятся данные даже у того товара, у которого нет изображения, у первого выводится нормально, у второго товара его нет(изображения) у третьего имеется одно изображение, а выводится два.
    PHP:
    1. while($row_stuff = mysql_fetch_assoc($info_stuff)){
    2.                 $stuff_id = $row_stuff['id'];
    3.                 $export = $row_stuff['images'];
    4.                 $explode = explode(",", $export);
    5.                 $explode_new = array_diff($explode, array(''));
    6.                 $image_stuff =  current($explode_new);
    7.            
    8.                foreach ($explode_new as $k => $images){
    9.        
    10.                        $stuff_image .=  "<tr><img style='width:150px;height:200px;'  src='images/image_stuff/" . $images ."'/></tr>";
    11.                }
    12.  
    13.         if($stuff_image == "") {
    14.                 $image_stuff = "<img src='images/No-Avatar.png'";
    15.             }
    16.             else{
    17.                 $image_stuff = $stuff_image;
    18.             }
    19.                 $stuff_group .= '<center><table>'.$image_stuff.'</table></center><br>  
    20.                <form action="" name="add_images" method="post" enctype="multipart/form-data">
    21.                <input type="text" name="hidden" value="'.$stuff_id.'">
    22.                <input type="file" name="filename"><br>
    23.                <input type="submit" name="add_stuff" value="Добавить изображение">
    24.                </form><br/>Название: '.$row_stuff['stuff_name'].'
    25.                <br/>Описание: '.$row_stuff['stuff_description'] .
    26.                 '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . "<br/><br/>";
    27.         }
    Вот так выглядит структура
    [​IMG]
    А вот так вывод
    [​IMG]
    Вывод массива explode_new
    Array ( [0] => 28687628.jpg )
    Array ( ) Array ( [0] => 41978375.jpg )
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    надо просто проследить за выполнением программы, проконтролировать всё, сделать отладку
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
     
  11. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Я уже всю голову сломал с этой головоломкой, может есть другой способ построить правильную таблицу? Не прошу код, а только указать направление.
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    начни писать код заново, по маленьким шагам и проверяй промежуточный результат, как только что-то пойдёт не так ты поймёшь какое изменение ты сделал и оно всё накрыло медным тазом, в этом и есть профессионализм, просто всё перепроверить и проследить за программой, есть не совпадение как работает компьютер и то что ты задумал в голове. это долго и нудно, нужно много прочитать про отладку, всё выучить при этом ещё перечитать документацию по всем функциям что ты используешь, понять и запомнить, потом опять всё перепроверять, через var_export выводить каждый шаг, смотреть за результатом.
     
    Salvat нравится это.
  13. Salvat

    Salvat Новичок

    С нами с:
    4 мар 2016
    Сообщения:
    101
    Симпатии:
    0
    Дело все в цикле while, что его нужно закрыть и потом уже разбирать массив, я так могу сделать только с 1 id, как их вывести все

    PHP:
    1. while($row_stuff = mysql_fetch_assoc($info_stuff)){
    2.          $stuff_id = $row_stuff['id'];
    3.          $export = $row_stuff['images'];
    4.          }  // необходимо закрыть чтобы разобрать
    5.          $explode = explode(",", $export);
    6.          $explode_new = array_diff($explode, array(''));
    7.          $image_stuff =  current($explode_new);
    8.      
    9.   foreach ($explode_new as $k => $image){
    10.    
    11.   $stuff_image .=  "<tr><img style='width:150px;height:200px;'  src='images/image_stuff/" . $image ."'/></tr>";
    12.   }
    13.    
    14.      if($stuff_image == "") {
    15.          $image_stuff = $row_stuff['images'];
    16.    
    17.        }
    18.        else{
    19.          $image_stuff = $stuff_image;
    20.        }
    21.          $stuff_group .=  $image_stuff.'
    22.         <form action="" name="add_images" method="post" enctype="multipart/form-data">
    23.         <input type="text" name="hidden" value="'.$stuff_id.'">
    24.         <input type="file" name="filename"><br>
    25.         <input type="submit" name="add_stuff" value="Добавить изображение">
    26.         </form><br/>Название: '.$row_stuff['stuff_name'].'
    27.         <br/>Описание: '.$stuff_description_r .
    28.          '<br/>Количество: ' . $row_stuff['count'] . '<br/>Цена за единицу: ' . $row_stuff['price'] . "<br/><br/>";
    29.      }  
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    зачем? что мешает в цикле ещё циклов наплодить, хоть несколько и разной нужной вложенности?
    --- Добавлено ---
    Вот, принеси в жертву циклы
    https://php.ru/forum/threads/vyvod-dereva-uslug-s-podgruppami.58784/#post-472464
     
  15. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Ща я тебе дам ссылку :) а ты там смотри и позновай :)
    --- Добавлено ---
    клац сюда.

    Короче 27 минута 34 секунда. Посмотри как чувак выводит циклы php в html коде, ) И тебе понравится :)