Я пытаюсь извлечь данные из базы данных MYSQL с помощью оператора, но по некоторым причинам оператор работает не так, как ожидалось. Что может быть причиной? Значения представляют собой входы даты из формы t1 и t2. Значения даты в форме 2005-04-06. Это может быть вопрос с датой? ... Я получаю «Нет контактов для отображения», несмотря на наличие данных в базе данных. Это синтаксическая ошибка?Оператор MYSQL SELECT для выбора периода даты
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "ub435!";
$dbname = "funtest";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$_SESSION['post-data'] = $_POST;
$t1 = $_SESSION['post-data']['t1'];
$t2 = $_SESSION['post-data']['t2'];
$time1 = mysqli_real_escape_string($conn, $t1);
$time2 = mysqli_real_escape_string($conn, $t2);
$sql = "SELECT DISTINCT msisdn FROM customer WHERE DATE_FORMAT(time_paid, '%Y-%c-%e') BETWEEN ADDDATE('$time1',INTERVAL 0 HOUR) AND ADDDATE('$time2',INTERVAL '23:59' HOUR_MINUTE)";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "Number of Recipients: "; echo "$result->num_rows <br> <br>";
// output data of each row
while($row = $result->fetch_assoc()) {
$mobilenumber = $row['msisdn'];
echo "Mobile : " . "$mobilenumber" . "<br>";
}
} else {
echo "No Contacts to Display";
}
$conn->close();
?>
ли вам нужно общее решение сервера MySQL + SQL? Почему он помечен SQL Server? –
Если ваша проблема не устранена, это может быть причиной формата даты, пожалуйста, проверьте формат даты в таблице базы данных и сравните с $ time1 и $ time2 – Rohit
'echo' your' $ sql' после подготовки запроса и попробуйте выполнить phpmyadmin напрямую, вы получите лучшее представление об этой проблеме. Или просто вставьте запрос здесь – Sanchit