Jump to content
php.lv forumi

mysql_fetch_array


ray

Recommended Posts

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

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

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

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

<?
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

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

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

×
×
  • Create New...