如何使用变量而不是字段名称更新sql字段?

时间:2014-08-25 12:02:53

标签: php sql variables request

我是新来的(显然不是英国人),但我有一个问题 我有一个SQL请求,它是UPDATE,如下所示:

 $rep = $bdd->exec("UPDATE z_agenda SET AGENDA_1='$code'WHERE AGENDA_NOM='$agent' AND AGENDA_TYPE='code'");

但是现在有趣的是,我希望将AGENDA_1更改为包含AGENDA_1AGENDA_2等的变量,直到AGENDA_31
但似乎SQL不喜欢它 那么,有人有想法吗? 我现在完全被困住了。

如果你想要更多解释,我就在这里。 坐下,等一下,阅读一些帮助论坛

我正在添加一些代码: “

 $mois = $_POST['mois'];   (integer)
    $debut = $_POST['debut'];  (integer : 1-31)
    $lettre = $_POST['lettre'];   (integer)
    $couleur = $_POST['couleur'];   (integer)
    $agent = $_POST['agent'];   (string)
    $code = $lettre + $couleur;

    $rep = $bdd->exec("UPDATE z_agenda
        SET AGENDA_1='$code'
            WHERE AGENDA_NOM='$agent'
            AND AGENDA_TYPE='code'");   

我的数据库包含很少的信息列,每天有31列。一行/月/用户 不知道如何使用其他解决方案管理我的数据库。

2 个答案:

答案 0 :(得分:1)

这里真的发生了很多事情。

编号列通常是一个非常不好的主意。单击数据库规范化链接以获取有关如何继续的详细信息和详尽指南。使用这样的数据库结构,您的应用程序将无法维护。你正在编写字符串构建循环'在你的余生中,你现在所拥有的问题已经解决了一百万次。

答案 1 :(得分:-1)

循环是静态的,仅作为示例,但您可以将内部代码设置为相应的

for($i=0;$i<=31;$i++)
{
    $agenda_coloumn = 'AGENDA_'.$i;
    $rep = $bdd->exec("UPDATE z_agenda SET $agenda_coloumn = '$code' WHERE AGENDA_NOM='$agent' AND AGENDA_TYPE='code'");
}