За последние 24 часа нас посетили 45189 программистов и 3276 роботов. Сейчас ищут 1566 программистов ...

Преобразование в массив

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

  1. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    echo $row["IPAddress"] если так выводить из таблицы sql то получается в строку 192.168.1.2192.168.1.3 итд как мне в массив преобразовать чтоб foreach ($urls as $url) заработало
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    вместо echo $row["IPAddress"]
    $urls[]=$row["IPAddress"];
    и потом заработает foreach ($urls as $url)
     
  3. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    не работает послед значение берёт, как будто $row["IPAddress"] тоже в цикле. Пока не разобрался
     
  4. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    гдеж ему быть кроме как в цикле?
    покажите код, с этого собственно и надо начинать
     
  5. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    Код (Text):
    1.  
    2. $tsql = "select Name, IPAddress from [dbo].[api_TerminalDevice] where IPAddress like '%192.168.0%'";
    3. $stmt = sqlsrv_query( $conn, $tsql);
    4.  
    5. if( $stmt === false )
    6. {
    7. echo "Error in executing query.";
    8. die( print_r( sqlsrv_errors(), true));
    9. }
    10.  
    11. /* Ïîëó÷àåì ðåçóëüòàòû çàïðîñà è âûâîäèì èõ íà ýêðàí */
    12. while($row = sqlsrv_fetch_array($stmt))
    13. {
    14.  
    15. $ipAdresses = [];
    16. // while($row = $iterator->fetch()){
    17. $ipAdresses[] = $row["IPAddress"];
    18.  
    19. $_COOKIE['varname'] = $ipAdresses;
    20.  
    21. }
    22. function tab_td($arg)
    23. {
    24.     echo "<td>";
    25.     echo $arg;
    26.     echo "</td>";
    27.     // return $arg;
    28. }
    29. $urls = $_COOKIE['varname'];
    30.  
    31. foreach ($urls as $url) {
    32.     //print("<tr>");
    33.  
    34.     $session = new SNMP(SNMP::VERSION_2c, $url, 'public');
    35.     $oid1 ='.1.3.6.1.2.1.25.3.2.1.5.1';
    36.     $oid2 ='.1.3.6.1.4.1.2699.1.2.1.2.1.1.2.1';
    37.     $oid3 ='.1.3.6.1.2.1.43.10.2.1.4.1.1';
    38.  
    39.     //print($oid1."<pre>");
    40.  
    41.     echo "<pre>".$url;
    42.     echo @$session->get($oid1)."<br>";
    43.     //print($oid2."<pre>");
    44.     echo @$session->get($oid2)."<br>";
    45.     echo @$session->get($oid3)."<br>";
    46.     //var_dump($session->getError());
    47.     //print("</tr>");
    48.    
    49. }
    50.  
    51. ?>
     
  6. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    фух, боюсь я не смогу вам помочь
    когда я пишу ответ на форуме, я рассчитываю на то, что базовых знаний у вас достаточно для его понимания
    и поверьте я стараюсь ответить как можно проще, не апеллируя к сложной терминологии и не прибегая к высокопарным аллегориям
    while($row = sqlsrv_fetch_array($stmt)){
    $urls[$row["Name"]]=$row["IPAddress"];
    }
    если вы не понимаете, что делает этот кусок кода, то вам либо основательно надо садится за изучение книг по PHP и MySQL, либо совсем бросать программирование
    подозреваю, что свой код вы лепите из различных частей найденных на просторах интернета, а это дорога в ад
     
    Septerrianin нравится это.
  7. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    var_dump(is_array($row["IPAddress"])); Вот проверил это не массив bool(false). как преобразовать в массив?
     
  8. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    естественно это не массив, массив формируется в $urls в результате работы цикла while($row = sqlsrv_fetch_array($stmt)){

    я уже намекнул постом выше про базовые знания, в частности как происходит обработка результата выборки из БД
     
  9. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    подскажи что дальше
     
  10. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    сделал так
    $urls=$row["IPAddress"];
    $arr1 = preg_split("/[\s,]+/",$urls);
     
  11. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    на всякий случай оставлю тут своё сообщение для тех кто будет просматривать тему
    НИ В КОЕМ СЛУЧАЕ НЕ ПОВТОРЯТЬ ЗА АВТОРОМ ТОПИКА!!!
    ибо не ведает он, что творит...
     
    villiwalla нравится это.
  12. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    Snmp Тупит при запросах по этому пытался через другие вещи сделать цикл перебора а не привязывать сразу. Разобрался set_time_limit(120); помогает отработать скрипт и пройти цикл для всех айпи
     
  13. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А мне кажется тупишь только ты)
    Я тебе уже написал что надо делать, а ты плодишь темы!
    https://php.ru/forum/threads/massiv.72133/
    --- Добавлено ---
    поправь базу и все!