我是一个新人在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'"); ?>
答案 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."'");
}