IP адреси в една колона

dakata__92

Super Moderator
Здравейте може ли да ми кажете как мога да записвам различните ип-та на абонатите в една колона примерно :

75.85.185.97 = 1
71.100.191.197 = 2

Примерно абоната е с ип 2 но съм го запаметил в базата с ип 1 искам към колоната да добавя и ип 2 , но как ще стане в заявката да го добавя и после да вадя ип адресите му ? С explode предполагам ...
 
Ако таблицата ти има полета user и ip:

- Добавяне на ново IP в полето
PHP:
$sql = "UPDATE `table` SET `ip`=CONCAT(`ip`,';НОВОТО ИП') WHERE `user` = 'pesho'";

Ако първоначално в полето е имало "127.0.0.1", то след изпълнението на горната заявка то ще стане "127.0.0.1;123.321.123.123" примерно. След това както и сам си се насочил можеш да използваш explode, за да разделиш стринга на части.

PHP:
$user_ips = explode(";", $row['ip']);

Имаш масив $user_ips с ip-тата. Примерно приложение:

PHP:
echo "Първи лог на потребителя от IP: ".$user_ips[0]."<br />";
echo "10-ти лог на потребителя от IP: ".$user_ips[9]."<br />";
echo "Последен лог на потребителя от IP: ".end($user_ips)."<br />";
 
А как мога да изкарам целия аrray $user_ips, без да пиша $user_ips[0],$user_ips[1] ... Възможно ли е ?
 
Ами обхождаш масива с foreach.
PHP:
foreach($user_ips as $key => $val) {
     echo $val."<br />";
}
 
Как да съчетая с първия код ето тази функция по най-рационалния начин - с най-малко писане ! Правя си проверка дали съществува ип адреса вече записан в базата така ! Но сега щом ще ползвам една колона как да направя така, че да се проверява дали IP адреса е вътре ! С регулярен израз ли как да я преобразувам ? Сещам се за начини но са с много писане, а не ми се иска да го правя нечетливо :D

PHP:
function VerifyGuestIp($ip) 
{        
$guest_chek = mysql_query("SELECT * FROM `proba` WHERE `ip`='{$ip}';")or die(mysql_error());        
return mysql_num_rows($guest_chek)? 1 : 0; 
}
 
Можеш да провериш за даден IP адрес по следния начин:

PHP:
if(in_array("127.0.0.1", $user_ips)) {
     echo "Потребителя се е логвал от IP-то 127.0.0.1";
}
 
carbonated каза:
Можеш да провериш за даден IP адрес по следния начин:

PHP:
if(in_array("127.0.0.1", $user_ips)) {
     echo "Потребителя се е логвал от IP-то 127.0.0.1";
}

Интересуваше ме за функцията със заявка дали може да се направи ?
 
dakata__92 каза:
carbonated каза:
Можеш да провериш за даден IP адрес по следния начин:

PHP:
if(in_array("127.0.0.1", $user_ips)) {
     echo "Потребителя се е логвал от IP-то 127.0.0.1";
}

Интересуваше ме за функцията със заявка дали може да се направи ?

Само със заявка не може да се направи.
 
carbonated каза:
dakata__92 каза:
carbonated каза:
Можеш да провериш за даден IP адрес по следния начин:

PHP:
if(in_array("127.0.0.1", $user_ips)) {
     echo "Потребителя се е логвал от IP-то 127.0.0.1";
}

Интересуваше ме за функцията със заявка дали може да се направи ?

Само със заявка не може да се направи.

Ако ползва регулярни изрази, защо да не може ?
 
PHP:
function VerifyGuestIp($ip) 
{        
$guest_chek = mysql_query("SELECT * FROM `proba` WHERE `ip` LIKE '%{$ip}%' ")or die(mysql_error());        
return mysql_num_rows($guest_chek)? 1 : 0; 
}
 
Много благодаря на всичкиви ! Изключителна помощ ми оказахте, +1 за carbonated, но бих дал + на всички ако можех ! Само едно бързо разяснение ако може да получа ето това кодче от заявката която прати MontefuckeR какво прави %.

LIKE '%{$ip}%'
 
dakata__92 каза:
Много благодаря на всичкиви ! Изключителна помощ ми оказахте, +1 за carbonated, но бих дал + на всички ако можех ! Само едно бързо разяснение ако може да получа ето това кодче от заявката която прати MontefuckeR какво прави %.

LIKE '%{$ip}%'
Търси по част от стринга. Например ако имаш база данни с няколко записа, които са: asd123, asd345, asd456 и търсиш в полето, което са записани само по "%asd%" то ще ти ги върне и 3-те.
 

Back
Горе