使用Join使用变量sprintf更新表

时间:2014-06-14 16:17:22

标签: php mysql variables join printf

我尝试通过加入查询使用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%相同的输出,所以生成的变量应该是相同的吗?因此,如果一个更新在找到相应的值时起作用,另一个也应该起作用。

0 个答案:

没有答案