Jump to content
php.lv forumi

Alternatīva while


Lynx

Recommended Posts

SELECT id, type FROM map WHERE (id BETWEEN "7" AND "15") OR (id BETWEEN "107" AND "115") OR (id BETWEEN "207" AND "215") OR (id BETWEEN "307" AND "315") OR (id BETWEEN "407" AND "415") OR (id BETWEEN "507" AND "515") OR (id BETWEEN "607" AND "615") OR (id BETWEEN "707" AND "715") OR (id BETWEEN "807" AND "815")

 

Šādam te selektam es mierīgi varu datus izvadīt ar while($row = mysql_fetch_assoc($query)) {, bet problēma rodas, ka man tos visus ierakstus vajag noindeksēt, piemēram, $ieraksts['1']['id'] utt un lietot pēc while beigšanās, bet tie dati vienkārši neuzrādās arpus while robežām. Man radās nepieciešamība šos datus izmantot vairākās vietās un visu laiku while taisīt sanāk ļoti neoptimizēti un bezjēdzīgi + dažās vietās neiespējami. Protams, var katram laukam taisīt 1nu selektu WHERE id = "7", bet lapas ielades un kveriju skaits palielinās 5kārtīgi.

 

Ir idejas kā atrisināt?

Link to comment
Share on other sites

kas liedz darīt šādi:

$query = mysql_query("SELECT ... ");
$dati = array();
while($row = mysql_fetch_assoc($query)) {
  $dati[$row['id']] = $row;
}
mysql_free_result($query);

Un tad pē tam izmantot to $dati[] masīvu indeksējot atrastās rindas pēc id?

Link to comment
Share on other sites

  • 2 months later...
kas liedz darīt šādi:

$query = mysql_query("SELECT ... ");
$dati = array();
while($row = mysql_fetch_assoc($query)) {
  $dati[$row['id']] = $row;
}
mysql_free_result($query);

Un tad pē tam izmantot to $dati[] masīvu indeksējot atrastās rindas pēc id?

18262[/snapback]

 

bubu, vai vari paraadiit piemeeru kaa noindexeet to masiivu?

Link to comment
Share on other sites

Es to "indeksējot" biju domājis tādā nozīmē, ka "vērsties pie masīva pēc indeksa", nevis kā darbības vārdu. Es tajā piemēra jau esmu izveidojis masīvu. Un lai grieztos pie tā pēc kautkāda id, tad to vajag uzdot kā masīva indeksu, piemēram:

echo $dati[10]['type'];

(šeit par indeksu tiek izmantota vērtība 10.

Edited by bubu
Link to comment
Share on other sites

×
×
  • Create New...