Morphius Posted April 26, 2009 Report Share Posted April 26, 2009 Es kā iesācējs uzrāvos uz vienas, it kā, elementāras lietas, bet man pagaidām nesaprotamas un neziāmas. Velos izvadīt preces tabulā, kā par piemēru paņemsim salidzini.lv preču katalogu. Tur ir redzams ka tabula sastāv no 3 rindām un 5 kolonnām. Man datubāzē pieņemsim ir 22 preces. Respektīvi pirmajā lapā 15 un otrajā 7. Es māku cilklā izvadīt preces, kuras tiek viena aiz otras pakārtotas(kā komentāri), nevis smuki tabulāri... Lūgums, izvadiet man kādu elementāru piemēru kā man ar ciklu palīdzību aizpildīt tabulu ar 15 vai 7 precēm! Savādāk bez piemēriem nespēju iebraukt šajā zinātnē...vai varbūt te ar cikliem nav nekāda saistība?! Quote Link to comment Share on other sites More sharing options...
kechums Posted April 26, 2009 Report Share Posted April 26, 2009 (edited) Viens no variantiem varētu būt ar DIV'u palīdzību, liekot ciklā. Ar tabulām šķiet nebūs vairs tik vienkārša padarīšana. //datu izvads echo ' <div style="float:left;width:100px;">saturs</div> '; Tas, cik vienā rindā saies divi, atkarīgs no pārējā lapas platuma, pielāgo, kamēr ir nepieciešamais. Edited April 26, 2009 by kechums Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 26, 2009 Author Report Share Posted April 26, 2009 (edited) Viens no variantiem varētu būt ar DIV'u palīdzību, liekot ciklā. Ar tabulām šķiet nebūs vairs tik vienkārša padarīšana. Ok, bet kā tas izskatās uz paīra ar visu ciklu? Cik saprotu, Tu man parādīji kā nostilēt <div> tegu?! ;) Ar tabulām es mēģināju darīt sekojoši: Izveidoju tabulu Katrā šūniņā ieliku do...while ciklu ar limit=1 izvadīju un aplauzos Respektīvi vienā šūnā izvadījās prece, bet pārējās palika tukšas, kaut gan tajās bija ierakstīta cikla funkcija! Kāpēc? Varbūt ir kāda cita funkcija, kas pārbauda vai ir jau izvadīts kaut kas un tad tiek izvadīts nākamais ieraksts? Edited April 26, 2009 by Morphius Quote Link to comment Share on other sites More sharing options...
marcis Posted April 26, 2009 Report Share Posted April 26, 2009 Padomāt tikai vajag :) Ar div elementiem būs vienkāršāk aiz tāda iemesla, ka nav jāseko līdzi izvadāmo ierakstu skaitam, atliek css'ā sarakstīt attiecīgās vērtības attiecīgajam elementam. Piemēram, ja tu izvadīsi vienu elementu pēc otra un pēc css noteikumiem tam ir noteikts platums, tad loģiski, ka tas automātiski pārleks jaunā rindā. Ja nu tomēr tabula, tad jāizdomā, ko jāizvada ciklam. Loģiski, katram elementam nebūs vajadzīga jauna tabula, tātad <table> tagiem jāatrodas ārpus cikla. Arī <tr> tagus nav jāizvada līdz ar katru ierakstu, taču ik pa noteiktam ierakstu skaitam gan. Tad nu jāsāk lietot izdoma. $i = 0; echo '<table><tr>'; while(){ echo '<td> </td>'; if(++$i%5==0){ // ja šī ieraksta kārtas numurs dalās ar 5 bez atlikuma, tad taisam jaunu rindu echo '</tr><tr>'; } } echo '</tr></table>' Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 26, 2009 Author Report Share Posted April 26, 2009 Padomāt tikai vajag :) Ar div elementiem būs vienkāršāk aiz tāda iemesla, ka nav jāseko līdzi izvadāmo ierakstu skaitam, atliek css'ā sarakstīt attiecīgās vērtības attiecīgajam elementam. Piemēram, ja tu izvadīsi vienu elementu pēc otra un pēc css noteikumiem tam ir noteikts platums, tad loģiski, ka tas automātiski pārleks jaunā rindā. Ja nu tomēr tabula, tad jāizdomā, ko jāizvada ciklam. Loģiski, katram elementam nebūs vajadzīga jauna tabula, tātad <table> tagiem jāatrodas ārpus cikla. Arī <tr> tagus nav jāizvada līdz ar katru ierakstu, taču ik pa noteiktam ierakstu skaitam gan. Tad nu jāsāk lietot izdoma. $i = 0; echo '<table><tr>'; while(){ echo '<td> </td>'; if(++$i%5==0){ // ja šī ieraksta kārtas numurs dalās ar 5 bez atlikuma, tad taisam jaunu rindu echo '</tr><tr>'; } } echo '</tr></table>' Nu ja...ar <div> ir pavisam vienkārši :) Bet ja atgriežamies pie tabulām... ja piemēram sataisa <table> ar 1 rindu u 5-cām kolonnām, tad ar ciklu ieliekam katrā šūnā pa vēl vienai tabulai jau ar produkta saturu?! Tikai jautājums kā tas izskatās koda veidolā? Es jau minēju ka meģināju cikliski izvadīt katrā šūnā pa produktam..bet man kaut kā nesanāk tas pasākums... Quote Link to comment Share on other sites More sharing options...
marcis Posted April 27, 2009 Report Share Posted April 27, 2009 Es tev pat piemēru uzrakstīju kā izskatīsies kods, kad būs tabula ar 5 kolonām. Ciklā, ik pa 5 ierakstiem, tu veidosi jaunu rindu, tas arī viss. Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 27, 2009 Author Report Share Posted April 27, 2009 (edited) Es tev pat piemēru uzrakstīju kā izskatīsies kods, kad būs tabula ar 5 kolonām. Ciklā, ik pa 5 ierakstiem, tu veidosi jaunu rindu, tas arī viss. Es sapratu ka tiks pievienota jauna rinda...jautaajums bija kaa tajaa pirmajaa rindaa izvadiit produktus katraa atsevishkaa shuunaa bez <div> tegiem? Kaa tas izskataas koda veidaa? Es jau mineeju ka katraa shunaa ieliku while ciklu un ieksh db kverija uzliku limit=1...rezultaats bija taads ka tika izvadiits viens produkts pirmajaa shuunaa, bet paareejaas 4 bija tukshas! BTW tavam piemeeram ir kluuda(3. rindaa)...vari izlabot...es ilgi shtukoju, bet taa arii nepieleca kaa to var izlabot! Edited April 27, 2009 by Morphius Quote Link to comment Share on other sites More sharing options...
Klez Posted April 27, 2009 Report Share Posted April 27, 2009 while starp iekavām vajag izteiksmi ibio ... tu tak teici ka rindiņā no db maaki izvadiit datus .... Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 27, 2009 Author Report Share Posted April 27, 2009 (edited) while starp iekavām vajag izteiksmi ibio ... tu tak teici ka rindiņā no db maaki izvadiit datus .... Nevajag tachu trakot...kas tev liekas elementaari man iespejam liekas nepaveicami, tapec arii prasu lai paradat kaa tas kodaa izskataas, lai vaardos nepaarprastu! Taa "ibio" vietaa buutu labaak ielicis realu piemeru :) Tu kad autinjam atver kapotu, uzreiz vari pateikt ka iespeejams varsti klaudz, vai arii pec motora darbibas momentali nosaki cik precizi ir noreguleta aizdedze, vai par velu vai agru, vai varbut siksna ir parlekusi pa zobu? :) Vel pasaki...tip kursh tad to nemak ;) Cerams domu gajiens ir skaidrs ;) Edited April 27, 2009 by Morphius Quote Link to comment Share on other sites More sharing options...
Klez Posted April 27, 2009 Report Share Posted April 27, 2009 (edited) domu gājiens ir skaidrs un ja paceļot kapotu vārsti klab, tad to es protu noteikt (to taču dzird) un ja aizdedze nav riktīga arī to protu pateikt ... būtu labāk paskatījies savā kodā, kurā tu izvadi tos datus rindiņā. ja tavā kodā nav while tad varbūt ir foreach ? vai paskaties manuāli kā izvada no db datus. Tur arī manuāli ir komentāri. palasi tos arī. vai arī parādi kas tavā kodā nedarbojas .. Edited April 27, 2009 by Klez Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 27, 2009 Author Report Share Posted April 27, 2009 Низкий поклон jums kungi, beidzot pieleca :D ja tavā kodā nav while tad varbūt ir foreach ? Manā kodā ir while...tik daudz jau apjēdzu! Neiet runa par galīgu stulbumu, iet runa par to ka esmu sācis kodēt 1.5 mēnesi atpakaļ un grūti to domāšanu virziīt pareizajā virzienā! Piemēram "kechums" ieteica ar <div> tegiem un es nekādīgi nevarēju iebraukt ko viņš ar tiem <div> bija domājis, kamēr cienītais mārcis neizšpļāva sekojošo tekstu: Piemēram, ja tu izvadīsi vienu elementu pēc otra un pēc css noteikumiem tam ir noteikts platums, tad loģiski, ka tas automātiski pārleks jaunā rindā. Pēc šī, bilde momentā palika skaidra! :) It kā sīkums, bet... Nu labi, ne par šo ir šis stāsts, turpinam ar iesākto tēmu :D Manā mazajā praksē jau divreiz esmu nonācis pie vienas neskaidrības, ar kuru vēlētos tagad tikt skaidrībā. Izmantojot 'while() {}' netiek izvadīts pirmais ieraksts no DB, bet savukārt 'do {} while();' izvada pilnībā visus ierakstsu...kadēļ tas pliks while tā uzvedas? A? PS Retais prot atšķir trokšņus un vēl jo vairāk spēj noregulēt aizdedzi :D Quote Link to comment Share on other sites More sharing options...
marcis Posted April 27, 2009 Report Share Posted April 27, 2009 Interesanti... Varbūt parādi kā tu izvadi datus lietojot while() ? Palasot while un do-while manuāļus, saprotam, ka while strādā, kamēr nosacījums ir spēkā, bet do-while sākumā dara un tad pārbauda vai nosacījums ir spēkā. Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 27, 2009 Author Report Share Posted April 27, 2009 (edited) Interesanti... Varbūt parādi kā tu izvadi datus lietojot while() ? Palasot while un do-while manuāļus, saprotam, ka while strādā, kamēr nosacījums ir spēkā, bet do-while sākumā dara un tad pārbauda vai nosacījums ir spēkā. Mārci, tas piemērs, ko Tu man te iedevi izvada DB ierakstus, izņemmot pirmo, bet ja izmantoju do...while tad izvada visus! Šāds do...while cikls izvada visus esošos ierakstus iekš DB do { printf("Šo forumu apskata lietotājs %s", $row["username"]); } while($row=mysql_fetch_assoc($result)); Gribi teikt ka man vienam gadījās aš 2-vas reizes tāds pārpratums? Nus kungi, kāds būs rezumējums? Ļausiet iesācējam izprast šo pārpratumu? Edited April 27, 2009 by Morphius Quote Link to comment Share on other sites More sharing options...
marcis Posted April 27, 2009 Report Share Posted April 27, 2009 Tev tur kaut kas ir līks, rādi sākot ar mysql_query() izpildi. Tavā gadījumā pirmais ir ieraksts uz ekrāna tiktu izmests "Šo forumu apskata lietotājs ", jo $row nemaz vēl nav definēts. Quote Link to comment Share on other sites More sharing options...
Morphius Posted April 28, 2009 Author Report Share Posted April 28, 2009 Tev tur kaut kas ir līks, rādi sākot ar mysql_query() izpildi.Tavā gadījumā pirmais ir ieraksts uz ekrāna tiktu izmests "Šo forumu apskata lietotājs ", jo $row nemaz vēl nav definēts. Shis kods izvada visus ierakstus: $result=mysql_query("tiripiri"); $row=mysql_fetch_assoc($result); do { printf("Šo forumu apskata lietotājs %s", $row["username"]); } while($row=mysql_fetch_assoc($result)); Shis kods neizvada pirmo ierakstu! $result=mysql_query("tiripiri"); $row=mysql_fetch_assoc($result); while($row=mysql_fetch_assoc($result)) { printf("Šo forumu apskata lietotājs %s", $row["username"]); } 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.