Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как создать вторую переменную на основе первой и вбить их в базу?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Korsand
Отправлено: 06 Апреля, 2013 - 02:28:54
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


Помог: 0 раз(а)




Здорова всем. Имеется проблема, а как решить – не знаю.

На данный момент я получаю переменную с номеров телефона и вбиваю этот номер в БД. Но мне нужно из этого номера, извлечь код страны и так же вбить его в базу. Т.е. мне нужно на основе первой переменной создать вторую и внести её в БД.

Номер телефона я получаю в международном формате: 79161230123 Код страны в данном случае «7», значить мне нужно из этого номера извлечь семёрку и вбить её в БД. Но я получаю не только российские номера, а это значит, что код страны может быть и «380» и «44». В общем, может быть около двухсот разных кодов стран, в которых содержится от одной цифры до трёх. Так же бывает, что номер приходит мне короткий (10060), т.е. из него мне не нужно выдирать код страны. Вот подскажите, это что, нужно делать через регулярки или как? Буду очень признателен, если кто-то подкинет готовый php код. Сейчас я ловлю данные и вбиваю их в БД так:
Спойлер (Отобразить)

Заранее спасибо!
 
 Top
Korsand
Отправлено: 15 Апреля, 2013 - 17:34:38
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


Помог: 0 раз(а)




Проблема решена, тема закрыта.
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Апреля, 2013 - 19:17:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А решение где? Вдруг у кого аналогичная проблема возникнет?
 
 Top
Korsand
Отправлено: 15 Апреля, 2013 - 20:06:48
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2013  
Откуда: UA Donbass


Помог: 0 раз(а)




DeepVarvar, мне очень в тебе нравиться то, что если тема с проблемой создана, а потом закрыта и при этом не опубликовано решение, то ты обязательно скажешь: "а ну, давай чувак, колись, как решена проблема?" Улыбка

Получается, что эта тема пересеклась с моей другой: http://forum.php.su/topic.php?fo...4&topic=2363 Т.к., решение я нашёл, но не мог потом разобраться с регуляркой – нужно было обойтись одной регуляркой а не двумя.
Короче, вот такой я нашёл выход, возможно он не самый лучший, но меня пака устраивает...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     include('config_db.php');
  3.        
  4.     $phone = strip_tags($_GET['phone']);
  5.     $country_code = preg_replace('/^(1905|1902|1876|1869|1868|1867|1819|1809|1807|1784|1780|1778|1767|1758|1709|1705|1684|1671|1670|1664|1649|1647|1613|1604|1599|1519|1514|1506|1473|1450|1441|1418|1416|1403|1345|1340|1306|1289|1284|1268|1264|1250|1249|1246|1242|1204|998|996|995|994|993|992|977|976|975|974|973|972|971|970|968|967|966|965|964|963|962|961|960|886|880|870|856|855|853|852|850|692|691|690|689|688|687|686|685|683|682|681|680|679|678|677|676|675|674|673|672|670|599|598|597|595|593|592|591|590|509|508|507|506|505|504|503|502|501|500|423|421|420|389|387|386|385|382|381|380|378|377|376|375|374|373|372|371|370|359|358|357|356|355|354|353|352|351|350|299|298|297|291|290|269|268|267|266|265|264|263|262|261|260|258|257|256|255|254|253|252|251|250|249|248|245|244|243|242|241|240|239|238|237|236|235|234|233|232|231|230|229|228|227|226|225|224|223|222|221|220|218|216|213|212|98|95|94|93|92|91|90|86|84|82|81|66|65|64|63|62|61|60|58|57|56|55|54|53|52|51|49|48|47|46|45|44|43|41|40|39|36|34|33|32|31|30|27|20|7|1)\d{6,}/','$1', $phone); 
  6.  
  7.     if ($country_code == $phone) {
  8.         mysql_query('INSERT INTO `tablica_01` (`phone`, `country_code`) VALUES ("'.$phone.'", "UNKNOWN")');
  9.     }
  10.     else{
  11.         mysql_query('INSERT INTO `tablica_01` (`phone`, `country_code`) VALUES ("'.$phone.'", "'.$country_code.'")');
  12.     }
  13. ?>

Получаю телефон в переменной $phone, пропускаю его через регулярку $country_code с перечнем тел.кодов. Если тел.код не найден, значит переменные $phone и $country_code будут у нас равны и содержать одно и тоже – делаем «if». А если код страны выдран из телефона, то $phone и $country_code уже имеют разное содержание – делаем «else». В регулярке, тел.коды должны идти от длинного к короткому.

ПС. Я не знаю как насчёт быстродействия, наверно можно как-то через массив, но я не знаю как это делать. Я только учуззь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB