MySQL如果没有

时间:2015-11-19 11:09:47

标签: php mysql

我有一个表格,用于存储有关用户每月活动的信息。 表格如下:

+-------------------------------------------+
|user_id   | month | year | value1 | value2 |
+-------------------------------------------+
|1         | 10    | 15   | 45     | 78     |
+-------------------------------------------+

假设我有3个用户使用ID 1,2和3。

我想做的是: 当我提交请求以显示表中给定月份和年份的记录时,如果用户没有记录,则显示上面的结果+创建记录,其值设置为“0”。它显示了这个:

+-------------------------------------------+
|user_id   | month | year | value1 | value2 |
+-------------------------------------------+
|1         | 10    | 15   | 45     | 78     |
|2         | 10    | 15   | 0      | 0      |
|3         | 10    | 15   | 0      | 0      |
+-------------------------------------------+

我设法按用户ID对其进行硬编码,但我无法自动执行:对于ACTIVITIES中不存在的每个用户,其中month = $ month和year = $ year insert(user_id ,月,年,0,0)。

这就是我得到的:

$result = mysqli_query($conn,"
    SELECT
        * FROM ACTIVITIES
    WHERE
        person_id = '2'
        AND month = '$month'
        AND year = '$year'
    ");

    if(mysqli_affected_rows($conn) > 0)
        {

        }
    else
        {
            mysqli_query($conn,"
            INSERT INTO ACTIVITIES
                (person_id, month, year, value1, value2)
            VALUES
                ('2', $mois, $annee, '0', '0')");
        }

请求帮助。 SB

1 个答案:

答案 0 :(得分:2)

尝试使用mysqli_num_rows()

if(mysqli_num_rows($result) > 0){

} else {
    //insert here
}