Jump to content
php.lv forumi

Datu indeksēšana atkārtotai izvadīšanai lapā


Lynx

Recommended Posts

Ir gadījumi, kad piemēram ir nepieciešams vienā lapā attēlot divās, vai trīs vietās vienus un tos pašus datus no vienāda mysql pieprasījuma. Zinot, ka datubāze visvairāk tiek noslogota, loģiski būtu veikt vienu pieprasījumu sākumā, noindeksēt datus un vēlāk viņiem piekļut. Un te rodas jautājums: kā to vislabāk darīt?

 

1ais variants, ko uz ātru roku uzrakstīju:

$i = 0;
$query = mysqli_query(); 
while($row = mysqli_fetch_assoc($query))
{
$i++; 
$id[$i] = $row['id']; 
$text[$i] = nl2br(stripslashes(parsecode($row['text'])));
}

Datus pēc tam atkārtoti izvadam šādi:

for($ii = 1; $ii <= $i; $ii++)
{
echo $id[$ii].' '.$text[$ii];
}

2ais variants:

$query = mysqli_query(); 
while($row = mysqli_fetch_assoc($query))
{
$data['id'][] = $row['id'];
$data[$row['id']]['id'] = $row['id']; 
$data[$row['id']]['text'] = nl2br(stripslashes(parsecode($row['text']))); 
}
izvadam: 

if(!empty($data))
{
foreach($data as $dat)
	{
		echo $dat['id'].' '.$dat['text'];
	}
}

Vai varbūt ir kāds vēl labāks variants? Un esmu pārleicināts, ka noteikti jābūt.

Link to comment
Share on other sites

Kautkā dīvaini tu to otro variantu taisi... Es šitā darītu:

$query = mysqli_query();
$data = array();
while($row = mysqli_fetch_assoc($query)) {
 $data[] = array('id' => $row['id'];
			  'text' => nl2br(stripslashes(parsecode($row['text'])))
 );
}
// ...
foreach ($data as $one_data) {
 echo $one_data['id'], ' ', $one_data['text'];
}

 

Pie tam, šī lieta saucās nevis indeksēšana, bet gan kešošana. Indeksēšana notiek, kad tu izveido kādu papildus datus struktūru, kura palīdz tev meklēt kautkādas lietas oriģinālajos datos ātrāk, nekā rakāties katru reizi pa tiem.

Link to comment
Share on other sites

Paldies, bubu.

 

Tieši tā, v3rb0, šis arī ir priekš templates paredzēts kods. php failā izvelkam visus datus, apstrādājam, nokešojam ;) un pēc php koda includojam templates failu. Un esmu pārliecināts, ka šis ir daudz labāks variants nekā smarty vai cita templašu sistēma.

Link to comment
Share on other sites

nu pag - pirmajā komentā viņš prasa kā attēlot vienus un tos pašus datus netaisot daudz vienādus querijus! khm..

jautājums drīzāk būtu kā pareizi strukturizēt iegūtos datus, bet tas jau katram kā ērtāk un atkarībā no tā kā tie dati pēctam jāizvada... nu vismaz es tā sapratu.

Link to comment
Share on other sites

×
×
  • Create New...