nie zabardzo wychodzi mi warunek przy petli ktory mialby wypelniac tabele pustymi td w razie gdyby record byl znaleziony. A wiec:
public function tableRow() { $reservations = new Application_Model_DbTable_Booking; $calendar = $reservations->fetchDate(); $toCompare=[]; $times = $reservations->fetchTime(); foreach($calendar as $date){ foreach($times as $time){ $toCompare[] = $date->date_reservation.$time->time; } } for ($i = 1; $i <= 8; $i++) { for ($j = 0; $j <= 7; $j++) { if ($j == 0) { } } else { echo '<td><input type="checkbox" name="Reservation[' . $this->giveTime(9+$i -1) . '][' . $this->reservationDay($j, '+') . ']" value="1"></br></td>' . "\n"; } } } }
Ktora daje mi taka ladna tablice [to tylko kawalek]
Zalozmy, ze mam po jednej rezerwacji w dniu 8.03 i 09.03 a ten waruenk pokazuje, ze mam po 3 z kazdego dnia i o tej samej godzinie. Why?
PS. Rozwiazac problem moge latwo przez dodanie odpowiedniego Value i wtedy wrzucic to do db, fetch i porownac. powinno wyjsc. Zastanawia mnie co jest nie tak, ze dostaje zle wyniki w obecnej konfiguracji.
PS2. Zeby nie bylo, probowalem rozne wariacje przy tablicach ktore porownuje np. $test[$this->reservationDay($j, '+')]=$this->giveTime(9+$i -1); i odpowiednie dla $toCompare . To samo..
Wiem co program robi nie tak ale nie wiem jak to zmienic.
Taka oto sobie zrobilem array z bazy danych z datami i godz
Array ( [0] => 2016-03-07 [1] => 2016-03-08 ) Array ( [0] => 11:00:00 [1] => 13:00:00 )
do tego funckja ktora porownuje
{ $this->html.='<td><input type="text" name="Reservation[' . $this->giveTime(9+$i -1) . '][' . $this->reservationDay($j, '+') . ']" value="'.($counter +1).'disabled "></br></td>' . "\n"; } else { $this->html.='<td><input type="checkbox" name="Reservation[' . $this->giveTime(9+$i -1) . '][' . $this->reservationDay($j, '+') . ']" value="'.($counter +1).'"></br></td>' . "\n"; } }
Za kazdym razem jak znajdzie match to przestawia <td>. Chodzi o to, ze on znajduje match w dniu 2016-03-08 i do tego wszystkie godziny podane. Wiec robi mi rezerwacje z godziny ktora powinna byc w dniu poprzednim (07.03) i vice versa. Niestety, czas mi sie skonczyl dzisiaj na programowanko, gdyby ktos cos jakos porade to chetnie skorzystam.
Thx
Dobra, rozwiazalem.
Maly zmiana przy pobieraniu danych tak, zeby pobieral dzien i godzinie. Nastepnie lacze je jako string i wrzucam do tablicy $nt. Tak wiec wychodzi mi
itd.
Array ( [0] => 2016-03-0711:00:00 [1] => 2016-03-0813:00:00
Nastepnie wrzucam to do in_array i smiga.
$this->html.= '<td width="25px" style="background: #c0c0c0;">X</td>' . "\n"; } else