metal-0-1 Posted September 24, 2013 Report Share Posted September 24, 2013 (edited) . Edited March 23, 2014 by metal-0-1 Quote Link to comment Share on other sites More sharing options...
Kavacky Posted September 25, 2013 Report Share Posted September 25, 2013 Strādā? Done. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted September 25, 2013 Report Share Posted September 25, 2013 Galvenais izštukot, kā tikt galā ar tukšajām stundām kādai klasei tā, lai varētu visām klasēm izkverijot pareizi, piemēram, 5. stundu, un lai nebūtu nobīdes pa kreisi, ja kādai klasei nenotiek piektā stunda. Bet visādi citādi ar prepared statementiem vajadzētu būt diezgan vienkārši. Bez multi-dimensiju masīviem, IMHO, iztikt nevar, ja vien nekverijo katras dienas katras klases katru stundu atsevišķi, bet tas būtu bik debīli. var vienkārši šādi: $lessons = array( day => array( class => array( 1.stunda => latviešu valoda, 2.stunda => latviešu valoda, 3.stunda => latviešu valoda, 4.stunda => latviešu valoda, 5.stunda => latviešu valoda, 6.stunda => null, 7.stunda => null, 8.stunda => null, ) ) ) savāc tur datus, tad lūpo cauri pa dienai un pa stundai un drukā ārā. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted September 25, 2013 Report Share Posted September 25, 2013 Kādi prepared statementi, kādas nobīdes, dafuq? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 25, 2013 Report Share Posted September 25, 2013 Nobīdes. :)) Quote Link to comment Share on other sites More sharing options...
jurchiks Posted September 25, 2013 Report Share Posted September 25, 2013 (edited) Nu skaties, ja tu kverijotu, piemēram, šādi: select priekšmets, klase from table_name where diena=otrdiena and plkst. = 11:50 # 5. stunda order by klase asc tad tev iztrūktu 1. klase. Prepared stmt vnk ātrumam. Edited September 25, 2013 by jurchiks Quote Link to comment Share on other sites More sharing options...
codez Posted September 25, 2013 Report Share Posted September 25, 2013 (edited) Tur taču ar visu uztaisīt selektojot uzreiz visus datus. Vienkāršakais variants uztaisam masīvu, kurā glabājam rindu pēc tās dienas, laika un klases, ko izveido kā kompozītu atslēgu. Tālak selektojam visas rindas, sametam pēc kompozītās atslēgas masivā. Ejam cauri visām dienām, laikiem un klasēm un skatamies pēc tās pašas atslēgas, vai dati ir, vai nav. Ja ir, izdrukājam priekšmetu, ja nav, izdrukājam tukšumu. Skelets izskatās šādi: http://codepad.org/GyOLWu2x <?php $rows=array( array("diena" => 1, "plkst" => "8:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 1, "plkst" => "9:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "8:00", "klase" => "10a", "pr" => "Fizika...."), array("diena" => 1, "plkst" => "8:00", "klase" => "9a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "9:45", "klase" => "9a", "pr" => "sports....") ); $data=array(); function k($d,$pl, $kl){ return $d."-".$pl."-".$kl; } foreach($rows as $row){ $data[k($row['diena'],$row['plkst'],$row['klase'])] = $row; } $dienas=array(1,2,3); $klases=array("9a","10a"); $laiki=array("8:00","9:00","9:45"); foreach($dienas as $diena){ echo "Diena: ".$diena."\n"; foreach($laiki as $laiks){ echo $laiks." "; foreach($klases as $klase){ $key=k($diena,$laiks,$klase); if (isset($data[$key])){ echo $data[$key]['pr']." "; } else { echo ".......... "; } } echo "\n"; } echo "\n"; } Edited September 25, 2013 by codez Quote Link to comment Share on other sites More sharing options...
jurchiks Posted September 25, 2013 Report Share Posted September 25, 2013 $rows=array( array("diena" => 1, "plkst" => "8:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 1, "plkst" => "9:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "8:00", "klase" => "10a", "pr" => "Fizika...."), array("diena" => 1, "plkst" => "8:00", "klase" => "9a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "9:45", "klase" => "9a", "pr" => "sports....") ); Būtu loģiskāk vākt tos datus no db, nevis hardkodēt kodā. P.S. kādam nepatīk atstarpes ap operatoriem/komatiem? Quote Link to comment Share on other sites More sharing options...
codez Posted September 25, 2013 Report Share Posted September 25, 2013 Būtu loģiskāk vākt tos datus no db, nevis hardkodēt kodā.Vel būtu loģiski rezultātu noformēt ar html, bet ne vienu, ne otru codepad.org neatbalsta. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 25, 2013 Report Share Posted September 25, 2013 > Būtu loģiskāk vākt tos datus no db, nevis hardkodēt kodā. Are you fucking kidding? Tu nesaproti, ka tas ir piemērs, lai saprastu, kādu rezultātu atdos datubāze? Quote Link to comment Share on other sites More sharing options...
Kavacky Posted September 27, 2013 Report Share Posted September 27, 2013 Kādas kompozītās atslēgas un citi murgi? Pietiek uztaisīt tukšu masīvu, kur jau ir visas stundas, tikai tukšas. SELECT * FROM un met iekšā, kur pienākas. Gatavs. Pārējais te piedāvātais ir kaitēkļu apkarošana ar taktiskajām kodolgalviņām. Quote Link to comment Share on other sites More sharing options...
metal-0-1 Posted September 27, 2013 Author Report Share Posted September 27, 2013 (edited) Kādas kompozītās atslēgas un citi murgi? Pietiek uztaisīt tukšu masīvu, kur jau ir visas stundas, tikai tukšas. SELECT * FROM un met iekšā, kur pienākas. Gatavs. Pārējais te piedāvātais ir kaitēkļu apkarošana ar taktiskajām kodolgalviņām. Emm. Codez risinājumā: Ir masīvs, kurā samet visas stundas ar SELECT *. (Tā kā tu iesaki, ja saprotu pareizi) Sākumā masīvs ir tukšs un tiek dinamiski izveidotas visas stundas ar kompozītatslēgu. Kāda velna pēc hardkodēt (tā kā tu iesaki) šī masīva atslēgas, ja tās var izveidot dinamiski? Laikam neuztvēru tavu spožo domu. Dinamiskumam ir lielas priekšrocības. Edited September 27, 2013 by metal-0-1 Quote Link to comment Share on other sites More sharing options...
codez Posted September 27, 2013 Report Share Posted September 27, 2013 Hah, nezināju, ka php var izveidot masīvu, kura elements ir masīvs, kura elements ir masīva, norādot tikai vairākas atslēgas un php pats izveidos apakšmasīvus: http://codepad.org/mNZxBJHR Tas nedaudz atvieglo iepriekšējo risinājumu un kompozitās atslēgas vietā varam lietot uzreiz 3 masīva atslēgas un neuztraukties par apakšmasīvu neesamību: http://codepad.org/RGQVIjWm <?php $rows=array( array("diena" => 1, "plkst" => "8:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 1, "plkst" => "9:00", "klase" => "10a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "8:00", "klase" => "10a", "pr" => "Fizika...."), array("diena" => 1, "plkst" => "8:00", "klase" => "9a", "pr" => "Matemātika"), array("diena" => 2, "plkst" => "9:45", "klase" => "9a", "pr" => "sports....") ); $data=array(); foreach($rows as $row){ $data[$row['diena']][$row['plkst']][$row['klase']] = $row; } $dienas=array(1,2,3); $klases=array("9a","10a"); $laiki=array("8:00","9:00","9:45"); foreach($dienas as $diena){ echo "Diena: ".$diena."\n"; foreach($laiki as $laiks){ echo $laiks." "; foreach($klases as $klase){ if (isset($data[$diena][$laiks][$klase])){ echo $data[$diena][$laiks][$klase]['pr']." "; } else { echo ".......... "; } } echo "\n"; } echo "\n"; } Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 1, 2013 Report Share Posted October 1, 2013 Kas notiek tad, ja 1. klasei nav 6. stundas? Quote Link to comment Share on other sites More sharing options...
Kavacky Posted October 1, 2013 Report Share Posted October 1, 2013 echo ".......... "; Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.