ray Posted April 4, 2007 Report Share Posted April 4, 2007 (edited) es gribēju zināt vai tad kad izpildās funkcija mysql_fetch_array, tad php konektējas pie datubāzes vai nē. man ir doma tāda, ka pie lapas ielādēšanas notiek vaicājums $qq = "SELECT * FROM tabula"; $rr = mysql_query($qq) or die (mysql_error()); un pēc tam vnk kkur lapā ar mysql_fetch_array($rr) izdabū datus, lai mazinātu noslodzi uz datubāzi. Vai šāds variants ir labs? Edited April 4, 2007 by ray Link to comment Share on other sites More sharing options...
Paulinjsh Posted April 4, 2007 Report Share Posted April 4, 2007 (edited) Nekonektējas. Ja vēlies samazināt noslodzi padomā par rezultātu caching. Edited April 4, 2007 by Paulinjsh Link to comment Share on other sites More sharing options...
ray Posted April 4, 2007 Author Report Share Posted April 4, 2007 Ja vēlies samazināt noslodzi padomā par rezultātu caching. kas tas ir? kā to realizēt? Link to comment Share on other sites More sharing options...
andrisp Posted April 4, 2007 Report Share Posted April 4, 2007 Piem., ielasīt rezultātu parastā masīvā un pieglabāt to uz diska kaut kur. Un nākamajā reizā ņemt datus nevis no datubāzes, bet no faila. Šādi risinājumi protams ir rūpīgi jāapdomā kas un kā. Btw, iesaku arī neizmantot * selektos, bet norādīt konkrēti kuras kolonnas vajadzēs, ja ātrdarbība ļoti svarīga. PS. Kā tavs aprakstītais risinājums palīdzēs cīnīties ar datubāzes noslodzi ? Kāda atšķirība, kur tu liec mysql_query un kur mysql_fetch_array. Link to comment Share on other sites More sharing options...
ray Posted April 5, 2007 Author Report Share Posted April 5, 2007 PS. Kā tavs aprakstītais risinājums palīdzēs cīnīties ar datubāzes noslodzi ? Kāda atšķirība, kur tu liec mysql_query un kur mysql_fetch_array. vnk man vairākas reizes vajadzēs lietot to mysql_fetch_array un ja vairākas reizes konektētos pie datu bāzes ar mysql_query, tad tas noslogos vairāk datu bāzi. Link to comment Share on other sites More sharing options...
Paulinjsh Posted April 5, 2007 Report Share Posted April 5, 2007 Tev jau teica, saglabā rezultātu kādā masīvā / failā un nebūs tev jāslēdzas tās vairākas reizes pie datu bāzes. Link to comment Share on other sites More sharing options...
ray Posted April 5, 2007 Author Report Share Posted April 5, 2007 Tev jau teica, saglabā rezultātu kādā masīvā / failā un nebūs tev jāslēdzas tās vairākas reizes pie datu bāzes. to metodi es zinu, vnk es nezinu kā, lai realizē to savā idejā. ok, pieņemsim, ka man ir tabula "T1", kurā ir lauki "id", "nosaukums", "skaitlis". kā lai šito vislabāk ieliek masīvā, ja man pēc tam no tā masīva būs vajadzīgs rezultāts, piem, šāds rezultāts, kāds būtu tad, ja rakstītu ar sql: SELECT * FROM T1 WHERE skaitlis = 4 Link to comment Share on other sites More sharing options...
andrisp Posted April 5, 2007 Report Share Posted April 5, 2007 <? if (empty($_SESSION['data'])) { $sql = ' SELECT * FROM `table` '; $result = mysql_query($sql); while($row = mysql_fetch_assoc($result)) { $_SESSION['data'][] = $row; } } // turpmaak kodaa izmantojam tikai $_SESSION['data'] masīvu ?> Kaut kā tā elementārā līmenī. Bet atceries, ka rūpīgi jāpārdomā, vai dati gadijumā sesijas laikā nevar mainīties u.t.t Link to comment Share on other sites More sharing options...
ray Posted April 5, 2007 Author Report Share Posted April 5, 2007 un kā piemēram tagad izgūt datus, ja man vajag izrakstus `nosaukums`, kur `skaitlis` = 2? Link to comment Share on other sites More sharing options...
andrisp Posted April 5, 2007 Report Share Posted April 5, 2007 Veido sql pieprasījumu pa jaunam. Vari, protams, arī izdomāt, kādu metodi kā no parasta masīva selektot kaut ko. Piemēram, ja tev selektot vajadzēs pēc id, tad masīva keyos izmanto šo id. Tad būsi viegli pieprasīt attiecīgo ierakstu. Link to comment Share on other sites More sharing options...
ohmygod Posted April 6, 2007 Report Share Posted April 6, 2007 Pāris pieprasījumu db nav nekas traks. Ja iet kaut kādi lapas tulkojumi, kur uz katru vārdu iet pieprasījums, tad ir vērts taisīt failos, bet ja tu uztraucies ka tev viena pieprasījuma vietā būs divi, tad aizmirsti un droši pieprasi. Neko daudz tas nenoslogo, protams, ja nva ultra liela DB vai nenormāli sarežģīts kverijs. Link to comment Share on other sites More sharing options...
Recommended Posts