За последние 24 часа нас посетили 21892 программиста и 1375 роботов. Сейчас ищет 731 программист ...

Подскажите как вставить текст foreach в переменную и сделать str_replace?

Тема в разделе "PHP для новичков", создана пользователем Artur_hopf, 2 окт 2018.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. Подскажите как вставить текст foreach в переменную и сделать str_replace?
    PHP:
    1. $query->result_array() //sql запрос
    2.  
    3.  // сейчас работает так:
    4. foreach ($query->result_array() as $item){
    5.                 echo '<tr>'
    6.                     .'<td bgcolor="white">'.$item['wt'].'</td>'
    7.                     .'<td bgcolor="white">'.$item['Datetime'].'</td>'
    8.                     .'<td bgcolor="white">'.$item['name'].'</td>'
    9.                     .'</tr>';
    10. }
    11. //такой foreach дает нужный мне результат, но нужно еще str_replace этой строки
    12. // делаю так:
    13. foreach ($query->result_array() as $item){
    14.                 $result = '<tr>'
    15.                     .'<td bgcolor="white">'.$item['wt'].'</td>'
    16.                     .'<td bgcolor="white">'.$item['Datetime'].'</td>'
    17.                     .'<td bgcolor="white">'.$item['name'].'</td>'
    18.                     .'</tr>';
    19. }
    20. $result = str_replace(".000",'',$result);
    21. echo $result;
    22. // выходит только последний перебор
    23.  
    24. // как сделать что то типо:
    25. $result .= //строка в foreach
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    мда...
    PHP:
    1. '<td bgcolor="white">'.str_replace(".000",'',$item['Datetime']).'</td>'
     
  3. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @nospiou
    Не мда, а спасибо большое, я учусь благодаря таким подсказкам :)
     
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    учится надо благодаря книгам, тогда и str_replace(".000",'',$result) глядишь не понадобился бы.
     
  5. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Я совмещаю :p
     
  6. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Artur_hopf, когда от такого совмещения страдает конечный результат, это называется по иному :)
     
  7. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Кстати, мне нужно было там еще получить количество записей, я сделал так, это правильно?:
    PHP:
    1. $i = 0;
    2. foreach ($query->result_array() as $item){
    3.       echo '<tr>'
    4.               .'<td bgcolor="white">'.$item['Wt_product'].'</td>'
    5.               .'<td bgcolor="white">'.str_replace(".000",'',$item['DateTime']).'</td>'
    6.               .'<td bgcolor="white">'.$item['name'].'</td>'
    7.               .'</tr>';
    8.       $i++;
    9. }
    10. echo ';'.$i;
    потом сплитю в js эту точку с запятой :)
    Код (Javascript):
    1. data = data.split(';');
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Понимаешь в чем суть?
    PHP:
    1. (new DateTime('2018-10-10 10:10:10.000'))->format('Y-m-d h:m:s');
    https://php.ru/manual/function.count.html
     
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @nospiou
    Суть в том что запись в базу делаю не я, я от туда только получаю данные, и мне десятые секунды не нужны =)
    Спасибо большое за помощь :)
    написал так:
    PHP:
    1. $i = count($query->result_array());
    2.             foreach ($query->result_array() as $item){
    3.                 echo '<tr>'
    4.                     .'<td bgcolor="white">'.str_replace(".000",'',$item['Start_date']).'</td>'
    5.                     .'<td bgcolor="white">'.str_replace(".000",'',$item['End_date']).'</td>'
    6.                     .'<td bgcolor="white">'.$item['Why_problem'].'</td>'
    7.                     .'</tr>';
    8.             }
    9.             echo ';'.$i;
    И да, это уже другой запрос
     
  10. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    так если они не нужны, то и не надо их оттуда доставать
     
  11. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Вот вся моя функция, как мне не доставать оттуда .000 я не знаю o_O:
    PHP:
    1. function get_wt(){
    2.         $oid = $this->input->post('oid');
    3.         $mid_date = $this->input->post('mid_date');
    4.         $max_date = $this->input->post('max_date');  
    5.         $this->db->select('Wt_product, DateTime');
    6.         $this->db->select( '(select FIO from database2
    7.                where id = id) AS [name]');
    8.         $this->db->where('DateTime  >= (SELECT DATEADD(hour, 7-'.$mid_date.', DATEDIFF(dd, 0, GETDATE())))');
    9.         $this->db->where('DateTime  <= (SELECT DATEADD(hour, 19-'.$max_date.', DATEDIFF(dd, 0, GETDATE())))');
    10.         $this->db->where('TPa_ior', $oid);
    11.         $this->db->order_by('DateTime','DESC');
    12.         $query = $this->db->get('database1');
    13.         $result = "";
    14.         $i = count($query->result_array());
    15.         foreach ($query->result_array() as $item){
    16.                  $result .= '<tr>'
    17.                     .'<td bgcolor="white">'.$item['Wt_product'].'</td>'
    18.                     .'<td bgcolor="white">'.str_replace(".000",'',$item['DateTime']).'</td>'
    19.                     .'<td bgcolor="white">'.$item['name'].'</td>'
    20.                     .'</tr>';
    21.         }
    22.         return $result .= ';'.$i;
    23. }