繁体   English   中英

使用while循环检索并更新mysql中的同一行

[英]retrieving and then updating the same row in mysql with while loop

我正在从本地数据库读取数据,然后对信息进行一些计算,然后将其重写。 一切正常,但是我不知道如何将自己完成的操作与正确的ID相关联。

它将我的新值插入表格的底部,并且不对应于相同的ID。 任何帮助将不胜感激。

id是自动递增的。

这是桌子

x        y      lat     lon     id 
123     123     NewVal  NewVal  1

因此纬度和经度的列为空。 当我运行PHP时,它将写正确的lat和lon的back,但是在数据库的末尾,而不是相应的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,则可以通过在数据库底部添加ID来实现。 希望任何人都能提供帮助。

UPDATE array 
SET lat = $NewLat, long = $NewLong
WHERE id = $id

还考虑比数组更好的名称:)

最好不要使用折旧的函数Mysqli *。使用PDOMYSQLi

如果要更新行..选择后,您需要使用UPDATE查询..并且在您的代码中,您正在复制列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'");

 }

?> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM