Php 使用while循环检索并更新mysql中的同一行
我从本地数据库中读取数据,然后用这些信息进行一些计算,然后将其重写回来。这一切都很好,但我不知道如何将我所做的与正确的id关联起来 它在表的底部插入我的新值,与同一ID不对应。如有任何帮助,将不胜感激 id是自动递增的 这是桌子Php 使用while循环检索并更新mysql中的同一行,php,mysql,Php,Mysql,我从本地数据库中读取数据,然后用这些信息进行一些计算,然后将其重写回来。这一切都很好,但我不知道如何将我所做的与正确的id关联起来 它在表的底部插入我的新值,与同一ID不对应。如有任何帮助,将不胜感激 id是自动递增的 这是桌子 x y lat lon id 123 123 NewVal NewVal 1 所以lat和lon的列是空的。当我运行PHP时,它会将正确的lat和lon写回数据库,但是在数据库的末尾,而不是相应的X,Y 代
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,它将通过在数据库底部添加来工作。
我希望任何人都能帮忙
UPDATE array
SET lat = $NewLat, long = $NewLong
WHERE id = $id
也考虑比数组更好的名称:
< P>最好不要使用折旧函数<强> MySqL*使用<强> PDO < /强>或<强> MySqLI>强> < /P> 如果要更新行..选择后,需要使用更新查询。。 在代码中,您正在复制列id,以便插入 必须散列*密码*,然后才能存储在数据库中<?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'");
}
?>
在计算新值后,更新新记录不要使用INSERT。不要使用不推荐的方法Hanks man,这很有效,我只需要添加变量“”,所以:“$NewLat”
<?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'");
}
?>