0

MySQL次の列を持つテーブルがあります。

Hid     Hname    Lat                Lngt          Phone
---     -----    ---                ----          -----
Integer varchar  double(10,7)   double(10,7)  varchar

HnameLatLongtおよびを更新しようとするとPhone、フィールドLatおよびLongt( double 型Hname) が更新されません (Phone正しく更新されます)。誰でも私が問題を理解するのを手伝ってくれますか? PHPコードセグメントは次のとおりです。

$i=0;
foreach($chk as $A)
{
    echo $lat[$i]; echo $lon[$i]; //It displays the correct values
    mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Longt=$lon[$i], Phone='$phn[$i]' where Hid=$chk1[$i]",$con);
    $i++;
}
4

3 に答える 3

1

あなたのmysqlクエリによると、タイプミスがあります。

あなたのmysqlクエリは

mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Longt=$lon[$i], Phone='$phn[$i]' where Hid=$chk1[$i]",$con);

サンプル データの列名は「Lngt」で、mysql クエリでは「Longt」で$phn[$i]、単一引用符で囲まれています。

その場合は、代わりにこれを使用してください

 mysql_query("update health_block set Lat=$lat[$i], Hname='$A', Lngt=$lon[$i], Phone=$phn[$i] where Hid=$chk1[$i]",$con);

最善の方法は、最初に配列項目を変数に割り当ててから、それを mysql クエリに入れることです。例えば

$latitude = $lat[$i];
$longitute = $lon[$i];
$phoneNum = $phn[$i];
$check1 = $chk1[$i];

mysql_query("update health_block set Lat='$latitude', Hname='$A', Lngt='$longitute', Phone=$phoneNum where Hid='$check1'",$con);
于 2013-09-03T06:26:39.467 に答える
0
mysql_query("update health_block set Lat='$lat[$i]', Hname='$A', Longt='$lon[$i]', Phone='$phn[$i]' where Hid=$chk1[$i]",$con);
于 2013-09-03T06:26:43.633 に答える
0

配列変数で {} を使用してみてください。

update health_block set Lat={$lat[$i]}, Hname=XXXX ... ";

于 2013-09-03T06:46:21.293 に答える