如何从月份为当前月的列中的SQL日期中选择月份

时间:2019-06-27 15:35:05

标签: php html sql json

我需要做出一条选择语句,从客户WHERE返回Voornaam,Tussenvoegsel,Achternaam(我的数据库中有一列称为Geboortedatum,在这里我有一个日期。我需要上面命名的值,其中Geboortedatum是与$currentmonth相同。我已经有一个返回currentmonth的json函数。)我对放在WHERE之后的内容感到困惑。 需要明确说明的是:我需要Voornaam,Tussenvoegsel和Achternaam,其中来自表客户的Geboortedatum(DD-MM-YYYY)月与$currentmonth相同。

$conn = new mysqli("localhost", "root", "Habt2002", "fca");

if ($_POST['key'] == 'bijnaJarig') {
    $currentmonth = $conn->real_escape_string($_POST['currentmonth']);
    $sql = $conn->query("SELECT Voornaam, Tussenvoegsel, Achternaam, Telefoonnummer, Email 
                        FROM customer 
                        WHERE ??????? ");
    $data = $sql->fetch_array();
    $jsonArray = array(
        'voornaam' => $data['Voornaam'],
        'tussenvoegsel' => $data['Tussenvoegsel'],
        'achternaam' => $data['Achternaam'],
        'telefoonnummer' => $data['Telefoonnummer'],
        'emailbijnajarig' => $data['Email']
    );

    exit(json_encode($jsonArray));
}

1 个答案:

答案 0 :(得分:1)

使用MONTH()CURDATE() MySQL函数可以完成

WHERE MONTH(Geboortedatum) = MONTH(CURDATE())

您可能还想添加YEAR()支票

AND YEAR(Geboortedatum) = YEAR(CURDATE())

除非您希望获得本月中所有年份的所有数据

第二期

您仅从结果集中获取一行,您要么需要在结果集中的n行上循环,要么使用fetch_all()方法。在这种情况下,fetch_all()似乎是最简单的方法。

$conn = new mysqli("localhost", "root", "xxxx", "fca");
if (!$conn) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

if ($_POST['key'] == 'bijnaJarig') {

    $sql = $conn->query("SELECT Voornaam, Tussenvoegsel, Achternaam, Telefoonnummer, Email 
                        FROM customer 
                        WHERE MONTH(Geboortedatum) = MONTH(CURDATE())");
    $all_rows= $sql->fetch_all();

    echo json_encode($all_rows);
}