2013-09-03 2 views
0

У меня есть MySQL таблицу со следующими столбцами:Невозможно обновить поле типа двойного в MySQL

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

Когда я пытаюсь обновить столбец Hname, Lat, Longt и 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++; 
} 
+2

Пожалуйста, покажите' var_dump ($ лат [$ I]); var_dump ($ долгота [$ i]); ' – peterm

+0

Он отображает тип как строку.Я просто заключил их в кавычки.Это отлично работает сейчас.Спасибо за предложение – JeNy

+0

проверьте нижеприведенный ответ с подробностями. –

ответ

1

По вашему MySQL Query есть опечатка ошибка.

Ваш 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 Query это «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 Query. Например

$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); 
+0

Да, но имя поля - «Longt» (как указано в запросе). На самом деле проблема заключалась в том, что я пропустил кавычки. Теперь он отлично работает. – JeNy

+0

ok perfect. Enojoy! –

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

попытка использования {} с переменной массива.

обновление health_block набор Lat = {$ ш [$ я]}, Hname = XXXX ... «;

Смежные вопросы