bra Posted February 20, 2005 Report Share Posted February 20, 2005 (edited) kodējot šādus tādus scitiņus man ir radušies pāris jautājumi... 1) kā teiksim izmantojot rand() f-ciju varētu iegūt 5 ciparu skaitli, kurš nekad neatārtos un teiksim ja dadijumā atkārtotos (pārbaudot ieš db atrodamos) tad irpildam atkal šo pašu f-ciju lai iegūtu skaitli kurš neatkārtotos. 2) kā noteikt dir izmēru (KB vai MB) nevis faila, bet dir, un kā noteikt kādas konkrētas MySql DB izmēru (KB vai MB) 3)kur varētu iegūt viegli iesācējam lasāmu materiālu(s) par OOP ja nemalod jāzeps bija ko saraxtījis, bet šobrīd laikam tas viss nav peejams. visur kur meklēju atduros uz to ka viss ir baigi gudri saraxtīc, bet tā saprotami nekur, jā saprotmi tas ir tiem kuri to jau zin bet ne iesācējam. Un kapēc visipar OPP ir jāizmanto man teiksim nepatīk tas ka esot jānodefinē mainīgais jau klases sākumā, vai tas neierobežo jo teiksim f-cijām tas tā nav jādara. Varbūt pēdējais teikums izklausījās, pēc zonoša cilvēka, bet par OPP man ir radies tāds priekštats pētot sorces un mēģinot lasīt dažādus materiālus. un teiksim šo te $this-> es vispār neizprotu no kurienas tas $this rodas utt . 4)kā pārlūkā izvadīt dienu skaitu cik palikušas, līdz kādam konkrētam datumam vai arī, cik pagājušas dienas kopš kāda konkrāta datuma Palies jau iepriekš P.S.šinī forumā nav iespējams neko atrast meklējot pēc OOP jo liegta iespēja meklēt ja vārds satur mazāk kā 4 simbolus Edited February 20, 2005 by bra Link to comment Share on other sites More sharing options...
bubu Posted February 20, 2005 Report Share Posted February 20, 2005 1) priekškam tas vajadzīgs? vai nav vienkāršāk likt iekš db kolonna NULL vērtību, kurai flags ir AUTO_INCREMENT, tādējādi panākot, ka vienmēr arī būs unikālas vērtības? Ja nu tas tomēr neder (lai gan nesaprotu kāpēc) tad tak elementārs cikls (nesaprotu, kā līdz tādam var nedadomāties??): do { $i = rand(10000, 99999); $q = mysql_query("SELECT COUNT(*) FROM tabula WHERE kolonna = $i"); list($cnt) = mysql_fetch_row($q); mysql_free_result($q); } while ($cnt > 0); 2) datubāzes izmēru var noteikt summējot kolonnas Data_length vērtības šādā kverijā: SHOW TABLE STATUS FROM database (sīkāka infa iekš - http://dev.mysql.com/doc/mysql/en/show-table-status.html) a bet direktorijām vienkārši: uzraksti rekursīvu procedūru, kas apstaigā direktorijas un summējot atgriež kopēju izmēru (pameklē pa šito forumu, kautkas tāds jau ne vienrez vien ir bijis te apspriests un rakstīts tam kods) 3) tik vienkāršu aprasktu neatradīsi, un zin, īpaši jau to - kāpēc vispār oop jālieto. Ja tev pietiek ar to kas ir, tad lieto laimīgs un īpaši nesatraucies par to OOP. Var mierīgi iztikt bez tās. (par tiem mainīgajiem klases sākumā - nav taisnība, ka fjām tie nav jādefinē - kas tad fjām ir parametri? tos arī nevajag definēt?) 4) ļoti vienkārši: $datums = mktime(0, 0, 0, 2, 10, 2004); // 2004. gada 10. februāris $info = getdate(); print_r($info); $tagad = mktime(0, 0, 0, $info['mon'], $info['mday'], $info['year']); // tekošais datums $delta = intval(($datums-$tagad)/(3600*24)); if ($delta > 0) { echo "Vēl palikusi(-šas) ".$delta." diena(s)!"; } else if ($datums < $tagad) { echo "Jau pagājusi(-šas) ".(-$delta)." diena(s)!"; } else { echo "Tā ir šodiena!"; } P.S. nemeklē - pabrowsē ierakstus zem OOP sadaļas, īpaši tos, kuriem lielākais atbilžu skaits vai ir visskatītākie! Link to comment Share on other sites More sharing options...
bra Posted February 21, 2005 Author Report Share Posted February 21, 2005 (edited) paldies, bet vel joprojām netieku skaidrībā ar to dir zimēru kā to varētu panākt lv.php.net atradu šādu te kodu, bet kā viņš būtu parezi jāpielieto <?php function dirsize($dirName = '.') { $dir = dir($dirName); $size = 0; while($file = $dir->read()) { if ($file != '.' && $file != '..') { if (is_dir("$dirName$file")) { $size += dirsize($dirName . '/' . $file); } else { $size += filesize($dirName . '/' . $file); } } } $dir->close(); return $size; } ?> P.S. adminiem nu salabojiet lūdzu to meklētāju jo simbolu skaits 3 ir biku par daudz nevar neko smuku sameklēt un ta vel brīnaties ka daudzu dumju jautājumu Edited February 21, 2005 by bra Link to comment Share on other sites More sharing options...
Venom Posted February 21, 2005 Report Share Posted February 21, 2005 is_dir("$dirName$file") занавес Link to comment Share on other sites More sharing options...
bra Posted February 21, 2005 Author Report Share Posted February 21, 2005 nesapratu? tur kautkas pa ru :angry: bet me no ru neko nerubī Link to comment Share on other sites More sharing options...
bubu Posted February 21, 2005 Report Share Posted February 21, 2005 Kā tu domā, ko funkcijas dirsize parametros varētu nozīmēt nosaukums dirName? <_< Link to comment Share on other sites More sharing options...
bra Posted February 22, 2005 Author Report Share Posted February 22, 2005 (edited) nu pag vai tad ' . ' nonozīmē tekošo dru? :blink: par MySql DB izmēru izmantoju šādu te kodu $all = mysql_query("SHOW TABLE STATUS"); if (!$all) { echo( mysql_error()); } else { while ($row = mysql_fetch_array($all)) { echo $row["Data_length"]; } } bet problēmas rodas tad ja vēlos saskaitīt visu kopā ir kādas idejas kā pārlūkā izvadīt visu DB izmēru? Edited February 22, 2005 by bra Link to comment Share on other sites More sharing options...
bubu Posted February 22, 2005 Report Share Posted February 22, 2005 Vai tu zini ko nozīmē sintakse - function fjas_nosaukums($mainiigais=vertiiba) ?? Īpaši tā daļa "=vertiiba"? Link to comment Share on other sites More sharing options...
bubu Posted February 22, 2005 Report Share Posted February 22, 2005 Nu tak netaisi echo $row["Data_length"];! Taisi: $sum += intval($row["Data_length"]); un tad pēc cikla, pašās beigās: echo "Db izmērs = $sum"; Link to comment Share on other sites More sharing options...
bra Posted February 22, 2005 Author Report Share Posted February 22, 2005 (edited) Nu tak netaisi echo $row["Data_length"];!Taisi: $sum += intval($row["Data_length"]); un tad pēc cikla, pašās beigās: echo "Db izmērs = $sum"; 14044[/snapback] ņā bet šis man izdod total: 328 total: 37144 total: 37336 total: 37880 total: 39024 total: 39652 total: 50512 total: 50672 total: 51496 total: 52003 total: 52003 total: 73995 total: 74619 bet man vajag visu vienā tipa saskaitīt visus šitos par to dir izmēru kā tad izsaukt to fuciju nadrabojas ne dirsize($dirName = '.') vai dirsize($dirName = 'manadira') nez arī dirsize() un kurnu vel $dir ="manadira"; dirsize($dir); Edited February 22, 2005 by bra Link to comment Share on other sites More sharing options...
bubu Posted February 22, 2005 Report Share Posted February 22, 2005 (edited) Nu cilvēk! Ja tev ciklā ir rakstīts: echo $row["Data_length"]; Tad ko vēl tu sagaidi, ja ne izvadīšanu uz ekrāna kaudzi ar skaitļiem!?! Ja gribi saskaitīt, tad tā arī raksti: $sum += intval($row["Data_length"]); Eh... kad reiz cilvēki sāks rakstīt tā kā runā, nevis raksta vienu un brīnās kāpēc tas nestrādā savādāk!?! $q = mysql_query("SHOW TABLE STATUS FROM tavas_db_nosaukums"); $sum = 0; if ($q) { while ($row = mysql_fetch_array($all)) $sum += intval($row["Data_length"]); mysql_free_result($q); } echo "Tavas DB izmērs = $sum"; Edited February 22, 2005 by bubu Link to comment Share on other sites More sharing options...
bubu Posted February 22, 2005 Report Share Posted February 22, 2005 par to dir izmēru kā tad izsaukt to fuciju nadrabojas ne dirsize($dirName = '.') vai dirsize($dirName = 'manadira') Rādās, ka tomēr nezini, ko tā sintakse nozīmē. Palasi manuāli: http://lv.php.net/manual/en/functions.argu...guments.default un kurnu vel $dir ="manadira"; dirsize($dir); Un kāpēc lai gan šis nestrādātu? Link to comment Share on other sites More sharing options...
bra Posted February 22, 2005 Author Report Share Posted February 22, 2005 vel viens jautājums par izmēriem kā teiksim pārvērst no baitiem uz MB teiksim ar vienu ciparu aiz komata Link to comment Share on other sites More sharing options...
Venom Posted February 22, 2005 Report Share Posted February 22, 2005 1 Mb=1024 Kb 1 Kb=1024 b round($sizeinbytes/1024^2,1) Link to comment Share on other sites More sharing options...
Lynx Posted February 22, 2005 Report Share Posted February 22, 2005 Shadu variantu es izmantoju: function formatsize($file_size){ if($file_size >= 1048576) {$file_size = round($file_size / 1048576 * 100) / 100 . "Mb";} elseif($file_size >= 1024) {$file_size = round($file_size / 1024 * 100) / 100 . "Kb";} else{$file_size = $file_size . "b";} return $file_size; } un pec tam tik echo "formatsize($sum)"; Link to comment Share on other sites More sharing options...
Recommended Posts