2013-04-12 5 views
0

J'ai un fichier php qui recevra des entrées d'un autre fichier php et affichera les données dans une table html, mais dans l'instruction SQL je ne reçois pas le champ de date filtré dedans, peut être le format de date est incorrect. S'il vous plaît aidez-moi à ceSélectionnez les enregistrements entre deux dates

Mon code est ci-dessous

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("marketnews", $con); 




$date1 = explode('/', $_POST['ADate']); 
$time = mktime(0,0,0,$date1[0],$date1[1],$date1[2]); 
$mysqldate = date('Y-m-d H:i:s', $time); 


$date2 = explode('/', $_POST['BDate']); 
$time = mktime(0,0,0,$date2[0],$date2[1],$date2[2]); 
$mysqldate1 = date('Y-m-d H:i:s', $time); 

$sec= "$_POST[id]"; 


echo "<br>"; 
echo "$mysqldate1"; 
echo "<br>"; 
echo "$sec";*/ 


$result = mysql_query("SELECT * FROM mktnews where security = '$sec' and eventdate between '$mysqldate' and '$mysqldate1'"); 
echo '<a href="main.html"><b>BACK</b></a>'; 
echo "<br>"; 
echo "<table border='2' BORDERCOLOR=GREEN align='center' > 
<tr> 
<th>Firm</th> 
<th>Name</th> 
<th>NIC</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['eventdate'] . "</td>"; 
    echo "<td>" . $row['news'] . "</td>"; 
    echo "<td>" . $row['security'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 

format de la date de cette table MySql est comme ça

2013-04-11

s'il vous plaît me aider

+0

quel est le type de données de votre colonne de date ..? – alwaysLearn

+0

Et une suggestion .. s'il vous plaît éviter d'utiliser les fonctions mysql_ * ils sont dépréciés .. – alwaysLearn

Répondre

1

Votre format de date semble correct en fonction de la structure de votre table, mais il vous manque des citations dans votre instruction mysql.

devrait ressembler à ceci:

$result = mysql_query("SELECT * FROM mktnews where security = '".$sec."' and eventdate between '".$mysqldate."' and '".$mysqldate1."'"); 

que je suis sûr que vous le savez, vous devez échapper à vos questions aussi.

0

vous devez avoir à changer le format de date à comparer au format de date dans votre table mysql

utilisation

$mysqldate = date('Y-m-d', $time); instead of $mysqldate = date('Y-m-d H:i:s', $time); 

et

$mysqldate1 = date('Y-m-d', $time); instead of $mysqldate1 = date('Y-m-d H:i:s', $time); 

retournera résultat que vous voulez.

0

changement

$mysqldate = date('Y-m-d H:i:s', $time); 

à

$mysqldate = date('Y-m-d', $time); 

et même pour $mtsqldate1

votre format de temps php et le format de temps mysql sont différents

Questions connexes