我有多个输入字段,其名称与id相同,其他字段具有其他名称,如
$id = implode(',', $_POST['id']);
$st = implode(',', $_POST['st']);
$sql = "UPDATE table SET st=('$st') WHERE id=('$id')";
在我的sql表中我想改变...也许是id-> 3和id-> 87或者其他10个用来更新“ st ”列的右边的值侧输入字段。来自id和st的键值是相同的。 我知道一行的update-sql语法。但是,如果我想要更多行,我不知道该怎么做
我的理由是使用Jquery Ajax或php Implode(如
) UPDATE table
SET st = CASE id
WHEN 'id_x' THEN 'st_x'
WHEN 'id_y' THEN 'st_y'
...
ELSE st
END
WHERE id IN('id_x', 'id_y', ...);
然后我从用户peterm
中找到了这个 @IBAction func refreshButton(sender: AnyObject) {
textArray.removeAllObjects()
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Conversation", predicate: predicate)
query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
publicCloudDatabase?.performQuery(query, inZoneWithID: nil,
completionHandler: ({results, error in
if (error != nil) {
dispatch_async(dispatch_get_main_queue()) {
self.notifyUser("Cloud Access Error",
message: error.localizedDescription)
}
} else {
if results.count > 0 {
var record = results[0] as! CKRecord
self.currentRecord = record
dispatch_async(dispatch_get_main_queue()) {
for x in results{
self.textArray.addObject(x.objectForKey("message") as! String)
self.tableView.reloadData()
}
}
} else {
dispatch_async(dispatch_get_main_queue()) {
self.notifyUser("No Match Found",
message: "No record matching the address was found")
}
}
}
}))
}
如何通过我的网站用户自发地进行循环获取(foreach?)
答案 0 :(得分:2)
我希望它能解决你的问题。您可以使用以下代码:
if(!isset($_POST['id'] || count($_POST['id']) == 0){
return;
}
foreach($_POST['id'] as $key => $id)){
$sql = "UPDATE table SET st='{$_POST['st'][$key]}' WHERE id='{$id}'";
}
答案 1 :(得分:0)
$SizeOfID=sizeof($id);
for($i=0;$i<$SizeOfID;$i++)
{
$IDvalue=$id[$i];
$STvalue=$st[$i];
mysql_query("UPDATE table SET st='$STvalue' WHERE id='$IDvalue'");
}
答案 2 :(得分:0)
由于循环,还有另一种更快的方法可以完成它而无需执行多个sql。
但是您必须确保查询的构建方式将使其“命中”现有的唯一键(例如主键),因此它将使用sql的ON DUPLICATE KEY更新其值。
例如:
<?php
$values = [];
foreach( $data as $id => $value ){
$values[] = "( '".$id."', '".$value."' )";
}
if( (bool)$values ){
$sql = "INSERT INTO table ( id, st ) VALUES".implode(',',$values)." ON DUPLICATE KEY UPDATE st = VALUES(st)";
//execute $sql here
}
您当然需要验证-清理数据...常用的东西...