2012-02-06 2 views
-2

im новый парень в php, я хочу помочь, я много расскажу об этом, но не мог понять. Я хочу написать ips сайтов из URL-адреса таблицы в базу данных в строке, известной как ips.Обновление каждого столбца с разным значением

Я использую gethostbyname, чтобы получить IP-адрес, теперь я хочу получить ip этого сайта, хранящегося в строке url, и сохранить этот IP-адрес в строке ips таблицы, но я не могу это сделать: только первый URL URL-адреса строки записывается во всех столбцах ips. Скажите, пожалуйста, как писать IP каждого URL в столбце ips соответствующей строки.

<? 
    include"cfg/db.php"; 

    $mirror_al = 
    mysql_query("SELECT * FROM kayitlar"); 
    $mirror = mysql_fetch_array($mirror_al); 
    $siteip=$mirror['url']; 
    $shrt=substr($siteip, 7); 
    $url = rtrim($shrt,"/"); 
    $mystring = $url; 
    $parts = explode("/",$mystring); 
    $mystring = $parts['0']; 
    $fullip=gethostbyname($mystring); 
    echo $fullip; 
    $ekle2 = mysql_query("UPDATE kayitlar set ips='$fullip'"); ?> 
+0

Я пробовал очистить это. – cwallenpoole

+0

без кода трудно догадаться, но я бы подумал, что вам нужен массив IP-адресов и цикл для подачи каждого IP-адреса в базу данных. – Elen

+0

Код @Elen ' ' –

ответ

0

я не знаю, почему вы ПОЛУЧАЕТЕ id, если вы не используете его в любом месте ... я добавил siteid из базы данных - см если он работает:

include"cfg/db.php"; 
$id = $_GET['id']; 

$mirror_al = mysql_query("SELECT * FROM kayitlar"); 

while($mirror = mysql_fetch_array($mirror_al)) 
    { 
    $siteip =$mirror['url']; 
    $siteid = $mirror['id']; // please correct accordingly 

    $shrt=substr($siteip, 7); 
    $url = rtrim($shrt,"/"); 
    $mystring = $url; 
    $parts = explode("/",$mystring); 
    $mystring = $parts['0']; 
    $fullip=gethostbyname($mystring); 
    echo $fullip; 

    $ekle2 = mysql_query("UPDATE kayitlar set ips='$fullip' where id='".$siteid."'"); 

} 
+0

Это сработало^_^Спасибо! :))) Ты обалденный! –

+0

no, ваш 'siteid' получить из базы данных при извлечении. '$ id = $ _GET ['id'];' - этот 'id' не используется в вашем исходном коде. или исходный код не завершен? – Elen

+0

теперь его полный брат вашего брата :) @Elen –

1

Ваш вопрос здесь (или по крайней мере один вы жалуетесь):

mysql_query("UPDATE kayitlar set ips='$fullip'"); 

Если вы просто вызываете update на столе, который будет обновлять все записи. Вам нужно какое-то предложение where, как правило, это идентификатор из текущей таблицы. Вы также можете использовать limit 1 в зависимости от вашей структуры таблицы (я не знаю, как вы это настроили, поэтому я не могу дать вам этот ответ). Если у вас нет возможности выбрать определенную строку, вам также может потребоваться просто использовать INSERT.

Вот что вы, вероятно, ищете:

if($fullip) 
    mysql_query("UPDATE kayitlar set ips='$fullip' where id='". 
        // sanitize your data! 
        mysql_real_escape_string($id) ."'"); 
+0

Я даже попытался использовать предложение where, и все URL-адреса имеют предложение onay как 0, я установил его как mysql_query («UPDATE kayitlar set ips = '$ fullip', где onay = 0"); stll той же проблемой он обновил/вставил все строки ips с одним IP-адресом первого URL-адреса. –

+0

Ваше предложение where не является достаточно определенным. – cwallenpoole

+0

Я получил другой ответ, работающий все еще Спасибо :) –

Смежные вопросы