2016-07-29 4 views
0

Ich versuche, Daten aus einer MySQL-Datenbank mit Anweisung abrufen, aber aus bestimmten Gründen funktioniert die Anweisung nicht wie erwartet. Was könnte der Grund sein? Die Werte sind Datumseingaben aus einer Form t1 und t2. Datumswerte in Form von 2005-04-06. Könnte es sich um ein Datumsformular handeln? ... Ich bekomme "Keine Kontakte zur Anzeige" trotz Daten in der Datenbank. Ist es Syntaxfehler?MYSQL SELECT-Anweisung für die Auswahl des Datumszeitraums

<?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(); 
?> 
+0

Sie benötigen allgemeine MySQL + SQL Server-Lösung? Warum ist es mit SQL Server getaggt? –

+0

Wenn Ihr Problem nicht behoben ist, könnte dies ein Grund für das Datumsformat sein, überprüfen Sie bitte das Datumsformat in Ihrer Datenbanktabelle und vergleichen Sie mit $ time1 und $ time2 – Rohit

+0

'echo' Ihre' $ sql' nach der Vorbereitung der Abfrage und versuchen Sie die Ausführung in phpmyadmin direkt erhalten Sie eine bessere Vorstellung von dem Problem. Oder fügen Sie einfach die Abfrage hier ein – Sanchit

Antwort

1

Sie haben $ verpasst:

$sql = "SELECT DISTINCT msisdn FROM customer where time_paid BETWEEN '$time1' AND '$time2')"; 
+0

Vermeiden Sie einfache Anführungszeichen '$ time' – jitendrapurohit

+0

@jitendrapurohit einfache Anführungszeichen muss in dieser Abfrage benötigt werden. – Rohit