destroy_all Posted August 23, 2006 Report Share Posted August 23, 2006 Ir mysql tabula - laiki un fieldi datetime from, to. Lai dabūtu dienu izmantoju DAY(from), DAY(to). Tālāk izveidoju tabulu ar for kura parāda dienas no 1 līdz 31. Tālāk iekrāsoju tabulas th laukus kuri atbilst DAY(from) <= $day and DAY(to) >= $day. Problēma ir tāda, foreach's izdod arā tikai vienu ierakstu no tabulas 'laiki'. Kad iekrāsoju (select *, DAY(from) as from, DAY(to) as to from laiki , piemēram, no 1 līdz 3 dienai un arī 5-8 dienai, iekrāsojas tikai 1.mais, otro man neizdod ārā. Kur varētu būt problēma? http://paste.php.lv/4323 Link to comment Share on other sites More sharing options...
Roze Posted August 24, 2006 Report Share Posted August 24, 2006 Nubet $query->result() ir masīvs? pretēji no koda daļas $obj =& get_instance(); $obj->db->select('name, id'); $obj->db->from('rooms'); $query = $obj->db->get(); foreach ($query->result() as $row) { ... Mēs tāpat neko nevaram pateikt jo kur tad ir pati get_instance(); ?? Vispār jau škiet ir sarežģīts viss līdz nelabumam.. Pēc jautājuma kopumā liekas ka visu varētu atrisināt ar vienu vienīgu SQL kveriju.. Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 Aha, man arī liekas, ka vienā no SQL kverijiem kkas nav riktīgi. Jau ilgu laiku cenšos atrast kļūdu. Link to comment Share on other sites More sharing options...
Roze Posted August 24, 2006 Report Share Posted August 24, 2006 Es gan to vairāk domāju kā vispārīgi kodā uzbūvē un loģikā.. Nu parādi ko tev izdrukā print_r($query->result()); Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 (edited) Kā tas apmēram izskatās. print_r($query->result()); Array ( [0] => stdClass Object ( [name] => istaba 1 [id] => 1 ) [1] => stdClass Object ( [name] => Istaba 2 [id] => 2 ) ) Array ( [0] => stdClass Object ( [name] => istaba 1 [id] => 1 ) [1] => stdClass Object ( [name] => Istaba 2 [id] => 2 ) ) jūtu, ka kods ir sagājis grīstē. Edited August 24, 2006 by destroy_all Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 Kāds var iedot kādu koda gabalu no kura pasmelties iedejas. Rezultāts ir šāds - Link to comment Share on other sites More sharing options...
Delfins Posted August 24, 2006 Report Share Posted August 24, 2006 ko tu īsti gribi, es tā arī nesapratu... Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 pirmo postu izlasīji? Link to comment Share on other sites More sharing options...
bubu Posted August 24, 2006 Report Share Posted August 24, 2006 Jā, un pie tam trīs reizes. Tāpat nesapratu. Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 ok, mēģināšu vēlreiz. Ir tabulas rooms, activity. Izveidoju tabulu ar istabām, dienu datumiem. Iekš activity tabulas ir date_from un date_to. Kā lai iekrāsoju tabulas rūtis no date_from līdz date_to. Link to comment Share on other sites More sharing options...
bubu Posted August 24, 2006 Report Share Posted August 24, 2006 Tabulu tu izvadi php ciklā? Nu tad jau prasts ifs līdzēs: echo '<td class="' . ($date >= $date_from && $date <= $date_to ? 'taken' : 'free') . '>...</td>'; kur tos $date_from, $date_to tu saņem no datubāzes, bet $date ir cikla skaitītājs. Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 (edited) jā, kā jau kodā redzams. bet, problēma ir tāda, ka man iezīmē tikai vienu ierakstu no activity tabulas, bet pārējos neiezīmē. Tulīt pamēģināšu tavu variantu. Paldies. - atkal tas pats, iekrāsojās tikai viens activity ieraksts. Edited August 24, 2006 by destroy_all Link to comment Share on other sites More sharing options...
bubu Posted August 24, 2006 Report Share Posted August 24, 2006 Cilvēk, tu savu kodu debugot māki? Uzraksti kautvai echo $date_from, ' ', $date_to; Un ciklā izvadi eccho $date; Un tad padomā, kāpēc kautkas varētu neiet, ja šie skaitļi būs tādi, kā tev izvadās. Link to comment Share on other sites More sharing options...
destroy_all Posted August 24, 2006 Author Report Share Posted August 24, 2006 $date_from un $date_to pārtaisīju par masīvu. Kā lai šo pašu izdara ar masīvu. echo '<td class="' . ($date >= $date_from && $date <= $date_to ? 'taken' : 'free') . '>...</td>'; foreach izmantot nevar. p.s. jau iepriekš atvainojos par savu stulbumu. Link to comment Share on other sites More sharing options...
bubu Posted August 24, 2006 Report Share Posted August 24, 2006 Tev vajag, lai tas $date ir kaut vienā no tiem date_from..date_to intervāliem, kas salikti masīvā? Es nesaprotu.. for ciklus nemākam rakstīt? $is_inside = false; for ($i=0; $i<count($date_from); $i++) { if ($date>=$date_from[$i] && $date<=$date_to[$i]) { $is_inside = true; break; } } // tagad $is_inside = true/false, daram ko vajag (un kāpēc foreach nevar izmantot? to pašu tikpat labi var ar foreach uzrakstīt) Link to comment Share on other sites More sharing options...
Recommended Posts