我正在从本地数据库中读取数据,然后对信息进行一些计算,然后重新编写。一切正常,但我不知道如何将我所做的与正确的id相关联。
它将新值插入表格的底部,而不是对应于相同的ID。任何帮助将不胜感激。
id是自动递增。
这是表格
x y lat lon id
123 123 NewVal NewVal 1
所以lat和lon的列都是空的。当我运行PHP时,它会将正确的lat和lon写回,但是在数据库的末尾,不是相应的X,Y。
以下是代码:
<?php
mysql_connect("localhost", "root", "test") or die(mysql_error());
mysql_select_db("class") or die(mysql_error());
$data = mysql_query("SELECT * FROM array")
or die(mysql_error());
require ('gPoint.php');
$myHome =& new gPoint(); // Create an empty point
while($info = mysql_fetch_array( $data ))
{
$x = $info['x'];
$y = $info['y'];
$id = $info['id'];
$myHome->setUTM( $x, $y, "39N");
$myHome->convertTMtoLL();
$NewLat = $myHome->Lat();
$NewLong = $myHome->Long();
mysql_query("INSERT INTO array (id, lat, lon) VALUES ('$id', '$NewLat', '$NewLong')");
}
?>
我没有在任何地方使用$id
,因为我不确定如何将两者结合在一起,我已阅读了无数的教程,而我似乎无法弄明白。
这是我的代码,
mysql_query("INSERT INTO array (lat, lon) VALUES ('$NewLat', '$NewLong')");
如果我删除上面的id,它可以通过添加到数据库的底部来实现。 我希望任何人都可以提供帮助。
答案 0 :(得分:0)
UPDATE array
SET lat = $NewLat, long = $NewLong
WHERE id = $id
还要考虑比数组更好的名称:)
答案 1 :(得分:0)
最好不要使用折旧函数 Mysqli * 。使用 PDO 或 MYSQLi
如果您想更新行...在选择之后您需要使用更新查询。 在您的代码中,您正在复制列 id 以插入
在存储到db
之前必须哈希 * 密码 *<?php
mysql_connect("localhost", "root", "test") or die(mysql_error());
mysql_select_db("class") or die(mysql_error());
$data = mysql_query("SELECT * FROM array")
or die(mysql_error());
require ('gPoint.php');
$myHome =& new gPoint(); // Create an empty point
while($info = mysql_fetch_array( $data ))
{
$x = $info['x'];
$y = $info['y'];
$id = $info['id'];
$myHome->setUTM( $x, $y, "39N");
$myHome->convertTMtoLL();
$NewLat = $myHome->Lat();
$NewLong = $myHome->Long();
mysql_query("UPDATE array SET lat='$NewLAt', lon='$NewLong' WHERE id='$id'");
}
?>