我尝试通过加入查询使用sprintf设置变量,然后每次使用加载到查询中的ID在表格中显示更新。
如果我使用稍微不同的查询但是提供相同的结果集的查询,则更新工作正常,因此得出结论我做了一些愚蠢的事情。
以下是选择:
//below is a simpler version of what I would like to work with the update
$sql=sprintf("SELECT `test`.`id` FROM `test` JOIN `test2` ON (test.agent=test2.user) WHERE `test`.`type`='new' AND `test2`.`note` = 'p';
//this is what works, even though the output (list of test.id) is identical to above
$sql=sprintf("SELECT `id` FROM `test` WHERE `test`.`type`='new' AND `agent`='test.user';
//here is my update that works with the second select
if($ref_id = mysql_one_data($sql)){
$updateSQL= sprintf("UPDATE `test` SET `type`='testdata', `priority`=%s, `note`=%s WHERE `id`=%s;",SQLVal('100', "int"),SQLVal($note, "text"),SQLVal($ref_id, "int"));
$result = mysql_query($updateSQL) or die(mysql_error());
$processed=TRUE; $result="updated";
$count_converted++;
}
有什么想法吗?我完全失去了!正如我所说,两个查询给出100%相同的输出,所以生成的变量应该是相同的吗?因此,如果一个更新在找到相应的值时起作用,另一个也应该起作用。