【发布时间】:2013-05-15 17:40:13
【问题描述】:
您好,我有一个带有自定义操作按钮的 jqgrid 设置,可将选定的行发送到数据库。我的一切正常,除了它每行发布 7 次数据,选择我只希望每个选定行发布一次的数据。请任何和所有帮助表示赞赏。 JQGrid, How to post JSON string to PHP to Process and send to Database?
$decarr= array(
['id'] =>
518
['name'] =>
'Brochure for amada'
['id_continent'] =>
' Ramon'
['lastvisit'] =>
'5/15/2013'
['cdate'] =>
'5/29/2013'
['ddate'] =>
'5/31/2013'
['email'] =>
'<a href="/media-management/uploads/1368166339.zip">Files</a>'
)
PHP:
//First decode the array
$arr = $_POST["json"];
$decarr = json_decode($arr, true);
$count = count($decarr);
$values = array(); // This will hold our array values so we do one single insert
for ($x=0; $x < $count; $x++){
$newrec = $decarr;
$id = $newrec['id']; $id = mysql_real_escape_string($id);
$name = $newrec['name']; $name = mysql_real_escape_string($name);
$id_continent = $newrec['id_continent']; $id_continent = mysql_real_escape_string($id_continent);
$email = $newrec['email']; $email = mysql_real_escape_string($email);
$lastvisit = $newrec['lastvisit']; $lastvisit = mysql_real_escape_string($lastvisit);
$cdate = $newrec['cdate']; $cdate = mysql_real_escape_string($cdate);
$ddate = $newrec['ddate']; $ddate = mysql_real_escape_string($ddate);
// Create insert array
$values[] = "('".$id."', '".$name."', '".$id_continent."', '".$lastvisit."','".$cdate."','".$ddate."','".$email."' )";
}
// Insert the records
$sql = "INSERT INTO finish (id, name, id_continent, lastvisit,cdate,ddate, email)
VALUES ".implode(',', $values);
$result = mysql_query($sql, $con) or die(mysql_error());
?>
【问题讨论】:
-
Please, don't use
mysql_*functions 在新代码中。它们不再被维护并且是officially deprecated。看到红框了吗?改为了解准备好的语句,并使用pdo 或mysqli。 -
重复问题并不会提高其被回答的机会。不过,对其进行改进。
-
我知道我仍然是一个菜鸟,所以我正在努力掌握 php。我会养成这个习惯。您对我的问题有什么建议?
-
实际上,除了
mysql的用法,PHP 部分看起来没有任何问题。$decarr中有什么,你能记录下它的值吗? -
好的,我在上面添加了 $decarr 中的内容。那么我错过了什么?为什么 7 被发布到数据库?
标签: php jquery mysql jqgrid-php