За последние 24 часа нас посетили 46694 программиста и 1686 роботов. Сейчас ищут 1304 программиста ...

Запись в базу

Тема в разделе "PHP для новичков", создана пользователем Sindicat, 21 апр 2009.

  1. Sindicat

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

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    Помогите, есть поле <textarea> туда вносятся через пробел или кому айпи - адреса и затем добавляются в базу. Задача сделать так чтобы каждый ип попадал в отдельную колонку. Возможно такое сделать ??
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Пример кода:

    PHP:
    1. <?php
    2.  
    3. // Содержимое textarea (произвольные IP адреса)
    4. $ips = '125.156.1.15, 10.0.0.1 127.0.0.1,125.168.197.254';
    5.  
    6. // Осуществляем поиск
    7. if(preg_match_all('/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/i', $ips, $ip)){
    8.    
    9.     // TODO: сюда помещаем код для обработки найденных адресов
    10.    
    11.     echo '<pre>'; print_r($ip);
    12. }
    13.  
    14. ?>
    На выходе получим следующее:

    Код (Text):
    1. Array
    2. (
    3.     [0] => Array
    4.         (
    5.             [0] => 125.156.1.15
    6.             [1] => 10.0.0.1
    7.             [2] => 127.0.0.1
    8.             [3] => 125.168.197.254
    9.         )
    10.  
    11. )
    Всё правильно, не смотря на неуместные запятые, пробелы, отсутствие пробелов и так далее.
    Также можно использовать preg_split .. впрочем количество вариантов реализаций ограничено только вашей фантазией.
     
  4. Sindicat

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

    С нами с:
    10 фев 2009
    Сообщения:
    46
    Симпатии:
    0
    спасибо, получилось !!

    PHP:
    1.  
    2. <?php
    3.   include("config/config.php");
    4. // Содержимое textarea (произвольные IP адреса)
    5.  $ips = '125.156.1.15, 10.0.0.1 127.0.0.1,125.168.197.254';
    6.  
    7.  // Осуществляем поиск
    8.  if(preg_match_all('/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/i', $ips, $ip)){
    9.      
    10.      // TODO: сюда помещаем код для обработки найденных адресов
    11.    
    12.  }
    13.  foreach($ip as $key=>$value) {
    14.      for($i=0; $i<count($value); $i++) {
    15.      echo $value[$i]."<br>";
    16.      
    17.  
    18.     $query = mysql_query("insert into table (ob_id,ip) values (ob_id,'".$value[$i]."')");
    19.      }
    20.  }
    21. ?>
    22.  
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Подкорректирую:

    Sindicat, только поместите цикл внутрь логического блока if (замените своим кодом TODO).
    Просто в случае несовпадения, получите ошибку.