【问题标题】:Updating each column with different value [closed]用不同的值更新每一列[关闭]
【发布时间】:2012-02-28 00:41:45
【问题描述】:

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

【问题讨论】:

  • 没有代码很难猜到,但我认为您需要一个 IP 数组和一个循环来将每个 IP 提供给数据库。
  • 代码@Elen &lt;? include"cfg/db.php"; $id = $_GET['id']; $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'"); ?&gt;
  • 编辑您的问题并在此处添加代码。作为评论,它完全不可读。
  • $mystring = $parts['0']; 尝试从$parts 中获取名称为0 的元素。你想要第一个项目,在这种情况下你应该使用$parts[0]。
  • @KristianAntonsen 现在没有 IP 被回显或写入

标签: php sql ip


【解决方案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) ."'");

【讨论】:

  • 我什至尝试使用 where 子句并且所有的 URL 都将 onay 子句设置为 0 我将其设置为 mysql_query("UPDATE kayitlar set ips='$fullip' where onay=0");仍然存在相同的问题,它更新/插入了具有相同 IP 的第一个 URL 的所有 ips 行。
  • 那么你的 where 子句不够具体。
  • 我得到了另一个答案仍然有效谢谢:)
【解决方案2】:

如果你不在任何地方使用它,我不确定你为什么会得到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."'"); 

}

【讨论】:

  • 成功了^_^谢谢! :))) 你太棒了!
  • 不,您的 siteid 在获取时从数据库中获取。 $id = $_GET['id']; - 此id 未在您的原始代码中使用。还是您的原始代码不完整?
  • 现在完全是你兄弟了 :) @Elen
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2013-06-18
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多