使用不同的值更新每一列


Updating each column with different value

我是php领域的新人,我想得到帮助,我在谷歌上搜索了很多,但没能找到。我想把表url中的站点的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'"); ?>

您的问题就在这里(或者至少是您正在抱怨的问题):

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

如果你在任何地方都不使用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."'"); 
}