2014-01-19 4 views
0

Привет, во-первых, это мой код.sql search while in foreach loop или while loop

<?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 -->"; 

} 

?> 

Что я пытаюсь сделать, это показать все даты между двумя точками и для каждой из дат искать мой дб, используя дату, где положение. я попытался положить поиск в нескольких местах, но я не получаю правильных результатов.

Это дает мне тот же результат в каждой дате.

например. 17th = (пусто), как в моем db, 18TH = HOME (как в моем db), 19 = HOME (не так, как в моем db), 20 = HOME (это продолжается до конца каждый)

link на каждом вперед каждый работает отлично?

Любая помощь будет потрясающей.

+0

i woul предлагает вам попробовать использовать один оператор sql вместо инструкции внутри цикла foreach. –

ответ

0

Я хотел бы сделать одно заявление, которое получает все необходимые данные из базы данных:

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

затем использовать цикл Еогеасп результатов

Обратите внимание, что mysql_ функции устарели, попробуйте переключиться на mysqli_ или PDO

+0

Я не могу сделать так, потому что будут отсутствовать записи. Даты выводят отображение стиля в календарном месяце. Mot выходные дни будут пустыми в db. Что касается PDO, то это моя следующая вещь, чтобы учиться. (Честно говоря, я перестаю кодировать какое-то время, и все меняется) – user2826526

+0

Отсортировано. Проблема была в моем sql. im, используя этот код (на этапе leaset до тех пор, пока я не изучу PDO) \t 'code' //////////// sql seearch ///////////// \t \t // Подключиться к db \t \t включают ("../djwbt.php"); \t \t \t \t $ sql = "SELECT * FROM daysummary WHERE date = '$ value'"; \t \t $ result = mysql_query ($ sql); \t \t $ row = mysql_fetch_array ($ result); \t \t $ place = $ row ['place']; \t \t $ invoicedate = $ row ['date']; \t \t \t \t ///////////// end sql search ////////// 'code' – user2826526