Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于逻辑测试的mysql数据库更新_Php_Mysql - Fatal编程技术网

Php 基于逻辑测试的mysql数据库更新

Php 基于逻辑测试的mysql数据库更新,php,mysql,Php,Mysql,我正在尝试根据另一个数据库的数据更新一个数据库 基本上,道路号、街区号和建筑号都在这两个数据库中,但其中一个包含lats和longs,而另一个不包含。因此,我正在尝试将lats和longs更新到另一个 这就是我所做的 <?php mysql_connect("localhost", "root", "test") or die(mysql_error()); mysql_select_db("class") or die(mysql_error()); $data = mys

我正在尝试根据另一个数据库的数据更新一个数据库

基本上,道路号、街区号和建筑号都在这两个数据库中,但其中一个包含lats和longs,而另一个不包含。因此,我正在尝试将lats和longs更新到另一个

这就是我所做的

<?php 

 mysql_connect("localhost", "root", "test") or die(mysql_error()); 
 mysql_select_db("class") or die(mysql_error()); 
 $data = mysql_query("SELECT * FROM testdata WHERE lat2='' And lon2 = ''"); // Selects from the database without lats and longs
 $address = mysql_query("SELECT * FROM address ") // selects from database with lats and longs
 or die(mysql_error()); 


 while($infodata = mysql_fetch_array( $data )) 
 { 
    $infoaddress = (mysql_fetch_array($address));


    $BuildingA = $infoaddress['Building']; // A stands for Address where is the database address
    $RoadNoA = $infoaddress['RoadNo'];
    $BlockA = $infoaddress['Block'];

    $BuildingD = $infodata['Building']; // D stands for testData which is the same database
    $RoadNoD = $infodata['RoadNo'];
    $BlockD = $infodata['Block'];

    $idA = $infoaddress['id']; // ID for address
    $idD = $infodata['id']; // ID for Data

    $lat = $infoaddress['lat']; // get the lats and longs
    $lon = $infoaddress['lon'];

    if ($BuildingA = $BuildingD && $RoadNoA = $RoadNoD && $BlockA = $BlockD)
     { // do the logical test

    mysql_query("UPDATE testdata SET lat2='$lat', lon2='$lon' WHERE id='$idD'"); // update the values

     }
     else 
    mysql_query("UPDATE testdata SET lat2='', lon2='' WHERE id='$idD'"); // update the values
 }

?> 

试试这个,用
=
代替
=

 if ($BuildingA == $BuildingD && $RoadNoA == $RoadNoD && $BlockA == $BlockD)
而不是

if ($BuildingA = $BuildingD && $RoadNoA = $RoadNoD && $BlockA = $BlockD)

试试这个,用
=
代替
=

 if ($BuildingA == $BuildingD && $RoadNoA == $RoadNoD && $BlockA == $BlockD)
而不是

if ($BuildingA = $BuildingD && $RoadNoA = $RoadNoD && $BlockA = $BlockD)

试试这个,用
=
代替
=

 if ($BuildingA == $BuildingD && $RoadNoA == $RoadNoD && $BlockA == $BlockD)
而不是

if ($BuildingA = $BuildingD && $RoadNoA = $RoadNoD && $BlockA = $BlockD)

试试这个,用
=
代替
=

 if ($BuildingA == $BuildingD && $RoadNoA == $RoadNoD && $BlockA == $BlockD)
而不是

if ($BuildingA = $BuildingD && $RoadNoA = $RoadNoD && $BlockA = $BlockD)

我怀疑你真正想要的是一个
更新
加入

UPDATE testdata t
JOIN address a USING (Building, RoadNo, Block)
SET t.lat2 = a.lat, t.lon2 = a.lon
WHERE t.lat2 = '' AND t.lon2 = ''

我怀疑你真正想要的是一个
更新
加入

UPDATE testdata t
JOIN address a USING (Building, RoadNo, Block)
SET t.lat2 = a.lat, t.lon2 = a.lon
WHERE t.lat2 = '' AND t.lon2 = ''

我怀疑你真正想要的是一个
更新
加入

UPDATE testdata t
JOIN address a USING (Building, RoadNo, Block)
SET t.lat2 = a.lat, t.lon2 = a.lon
WHERE t.lat2 = '' AND t.lon2 = ''

我怀疑你真正想要的是一个
更新
加入

UPDATE testdata t
JOIN address a USING (Building, RoadNo, Block)
SET t.lat2 = a.lat, t.lon2 = a.lon
WHERE t.lat2 = '' AND t.lon2 = ''


mysql\u
库已弃用-请使用PDO或
mysqli\u
。关于压痕的事。小心SQL注入谢谢。这是脱机的,我只是想更新我的数据库。我不明白你在做什么。您正在从两个表中读取数据,并且似乎希望这些行彼此对应。但是没有按
排序,所以您以随机顺序读取每个表。您可能只需在两个SQL查询中编写它,然后使用SQL而不是PHPI。不知道如何使用它,按id排序?这不会产生相同的结果,因为这两个表具有不同的id吗?我的想法是:如果lat和long为空,我逐行读取第一个表,然后一直读取整个第二个表(这就是我将其放入循环的原因),以检查是否存在对应的匹配。我错了吗?
mysql\uuu
库已被弃用-请使用PDO或
mysqli\uu
。关于压痕的事。小心SQL注入谢谢。这是脱机的,我只是想更新我的数据库。我不明白你在做什么。您正在从两个表中读取数据,并且似乎希望这些行彼此对应。但是没有按排序,所以您以随机顺序读取每个表。您可能只需在两个SQL查询中编写它,然后使用SQL而不是PHPI。不知道如何使用它,按id排序?这不会产生相同的结果,因为这两个表具有不同的id吗?我的想法是:如果lat和long为空,我逐行读取第一个表,然后一直读取整个第二个表(这就是我将其放入循环的原因),以检查是否存在对应的匹配。我错了吗?
mysql\uuu
库已被弃用-请使用PDO或
mysqli\uu
。关于压痕的事。小心SQL注入谢谢。这是脱机的,我只是想更新我的数据库。我不明白你在做什么。您正在从两个表中读取数据,并且似乎希望这些行彼此对应。但是没有按排序,所以您以随机顺序读取每个表。您可能只需在两个SQL查询中编写它,然后使用SQL而不是PHPI。不知道如何使用它,按id排序?这不会产生相同的结果,因为这两个表具有不同的id吗?我的想法是:如果lat和long为空,我逐行读取第一个表,然后一直读取整个第二个表(这就是我将其放入循环的原因),以检查是否存在对应的匹配。我错了吗?
mysql\uuu
库已被弃用-请使用PDO或
mysqli\uu
。关于压痕的事。小心SQL注入谢谢。这是脱机的,我只是想更新我的数据库。我不明白你在做什么。您正在从两个表中读取数据,并且似乎希望这些行彼此对应。但是没有按排序,所以您以随机顺序读取每个表。您可能只需在两个SQL查询中编写它,然后使用SQL而不是PHPI。不知道如何使用它,按id排序?这不会产生相同的结果,因为这两个表具有不同的id吗?我的想法是:如果lat和long为空,我逐行读取第一个表,然后一直读取整个第二个表(这就是我将其放入循环的原因),以检查是否存在对应的匹配。我错了吗?嗨,我试过了,现在有错误的值时它不会更新,但有正确的值时它也不会更新。嗨,我试过了,现在有错误的值时它不会更新,但有正确的值时它也不会更新。嗨,我试过了,现在有错误的值时它不会更新,但是当有正确的值时它也不会更新。嗨,我试过了,现在当有错误的值时它不会更新,但是当有正确的值时它也不会更新。谢谢,这很有效。我不知道你能那样做。谢谢你,这很有效。我不知道你能那样做。谢谢你,这很有效。我不知道你能那样做。谢谢你,这很有效。我不知道你能那样做。