Jump to content
php.lv forumi

iekrasot dienas


destroy_all

Recommended Posts

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

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

Kā tas apmēram izskatās.

untitledum2.jpg

 

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 by destroy_all
Link to comment
Share on other sites

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

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 by destroy_all
Link to comment
Share on other sites

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

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

×
×
  • Create New...