使用不同的值更新每个列

时间:2012-02-06 14:41:47

标签: php sql ip

我是一个新人在PHP我想要帮助,我谷歌很多关于它但无法搞清楚。我想将表网址的ips写入称为ips的行中的数据库。

我使用gethostbyname来获取IP,现在我要做的是获取存储在url行中的该站点的IP并将该IP存储在表的ips行中,但我无法做到:只有第一行的URL IP写在所有ips列中。请告诉我如何在相应行的ips列中写入每个URL的IP。

<? 
   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'"); ?>

2 个答案:

答案 0 :(得分:1)

你的问题在这里(或者至少是你抱怨的那个):

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

如果您只是在表上调用update,那将更新所有记录。您需要某种where子句,通常这是当前表中的一些ID。您也可以使用limit 1,具体取决于您的表结构(我不知道您是如何设置的,所以我不能给您答案)。如果您无法选择特定行,您也可以考虑仅使用INSERT

以下是您可能正在寻找的内容:

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

答案 1 :(得分: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."'"); 

}