在foreach循环或while循环中进行sql搜索

时间:2014-01-19 12:20:14

标签: php sql foreach

嗨首先是我的代码。

<?php
function getDatesBetween2Dates($startTime, $endTime) {
$day = 86400;
$format = 'd-m-Y';
$startTime = strtotime($startTime);
$endTime = strtotime($endTime);
$numDays = round(($endTime - $startTime) / $day) + 1;
$days = array();

for ($i = 0; $i < $numDays; $i++) {
    $days[] = date($format, ($startTime + ($i * $day)));
}

return $days;
}
///
$days = getDatesBetween2Dates(date('d-m-Y', strtotime('-3 weeks Monday')),date('d-m-Y', strtotime('+2 weeks Sunday')));

foreach($days as $key => $value){


$dayNumber = date('d', strtotime($value));


//echo $value;
echo "<div id=\"day\">
        <div id=\"number\">$dayNumber</div>";

    ////////////sql seearch//\\\/////////
    //Connect to db
    include("../djwbt.php");

    $sql = "SELECT * FROM daysummary WHERE date='$value'";
    $result = mysql_query($sql);

    while($row = mysql_fetch_array($result))
     {
        $place = $row['place'];
         $invoicedate = $row['date'];
    }
    /////////////end sql search//////////

echo "<div id=\"event\"><a href=\"$value\">$place</a></div>
        </div><!-- end day -->";

}

?>

我要做的是显示两点之间的所有日期,并且每个日期使用日期作为where子句搜索我的数据库。我试过把搜索放在几个地方,但我没有得到正确的结果。

这给了我每个日期的相同结果。

e.g。 17th =(空)在我的数据库中,18TH = HOME(在我的数据库中),19 = HOME(不在我的数据库中),20 = HOME(这一直在每个前面继续)

每个前面的链接都完美无缺?

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

我会发一条语句从您的数据库中获取所有需要的数据:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

然后使用foreach循环获得结果

请注意,不推荐使用mysql_函数,尝试切换到mysqli_或PDO