PHP MySQL添加到数据库中的现有值

时间:2012-05-06 13:09:33

标签: php mysql

我有点陷入PHP脚本。

该脚本适用于广播电台,需要执行以下操作:

  1. 计算广播演示者预订当天的广告位的次数。插槽存储在数据库的表中,我将使用代码date("l")来确定当前日期,然后搜索“day”设置为date("l")值的所有行。

  2. 然后,我需要找出演示者已经存储了多少小时,存储在具有用户名的行的“users”表中的“monthly_slots”列中。 "SELECT monthly_slots FROM users"

  3. 然后,我需要添加演示者今天完成的插槽数量的值,以及monthly_slots列中已存在的插槽数量。

  4. 以下是我的代码

    $currentday = date("l");
    $currentslots = mysql_query("SELECT monthly_slots FROM users");
    mysql_query("
        UPDATE users
        SET slots = (SELECT COUNT(*) + "$currentslots" 
                     FROM timetable 
                     WHERE timetable.username = users.username 
                       AND day = "$currentday"
                    )
    "); 
    

    谁能看到我哪里出错了?

    由于

3 个答案:

答案 0 :(得分:1)

获取资源返回的值

$currentday = date("l");
$result = mysql_query("SELECT monthly_slots FROM users");
$currentslots = mysql_fetch_assoc($result);


mysql_query("
    UPDATE users
    SET slots = (SELECT COUNT(*) + "$currentslots" 
                 FROM timetable 
                 WHERE timetable.username = users.username 
                   AND day = "$currentday"
                )
");

答案 1 :(得分:0)

$ currentslots是一个mysql资源而不是数字,使用mysql_num_rows($ currentslots)代替

答案 2 :(得分:0)

//当前日期

$currentday = date("l");

//查找users表中的小时数

$exec_monthlyslots = mysql_query("SELECT monthly_slots FROM users");
$currentslots=mysql_fetch_assoc($exec_monthlyslots);

//而不是计算所有列,请使用您要计算的列ID COUNT(*)

$new_query="UPDATE users
            SET slots = (
                            (
                                SELECT COUNT(*)
                                FROM timetable 
                                WHERE timetable.username = users.username 
                                AND day = ".$currentday."
                            )
                            + ".$currentslots['monthly_slots']."
                        )
            ";

mysql_query($new_query);

这应该会帮助你。告诉我,如果没有。