Jump to content
php.lv forumi

Query rezultāta izvade


zuiks

Recommended Posts

Jautājums tāds. Dabūnu kverija rezultāta rindu:

 

$result = mysql_query("SELECT * FROM forums ORDER BY id")

or die("Invalid query: " . mysql_error());

$total_rows=mysql_num_rows($result);

$row=mysql_fetch_assoc($result);

 

 

// --- tā izvadās VISS kverija rezultāts

do {

echo $row['name'];

} while ($row=mysql_fetch_assoc($result));

 

 

 

Bet man vajadzētu tā, ka vispirms es izvadu pirmās 10 rezultāta rindas, pēc tam nākamās 10 utt. (lai komentārus saliktu pa lappusēm, līdzīgi kā Delfi: 1-10 11-20 21-30 utt.

Kā te vajadzētu rīkoties?

Link to comment
Share on other sites

Rindu savākšana ir nekorekta.

Ja kverijs neatgriezīs nekādas rindas, tad pirmais $row=mysql_fetch_assoc($result); izsaukums iekš $row ieliks false. Un tad do ciklā $row['name'] nebūs definēts!

Pareizi būtu lietot while ciklu, jo tad jau tā false pārbaude notiks pie paša sākuma un cikls vairs neizpildīsies.

while ($row = mysql_fetch_assoc($result)) {
 echo $row['...'];
}
mysql_free_result($result);

Link to comment
Share on other sites

es tikko pamēģināju šitā:

 

$result = mysql_query("SELECT * FROM forums WHERE marker=$marker ORDER BY ID")

or die("Invalid query: " . mysql_error());

$total_rows=mysql_num_rows($result);

 

 

for ($i=0; $i<10; $i++) {

$row=mysql_fetch_assoc($result);

echo $row['name'];

echo "<br>";

}

 

 

 

it kā gāja... vai tā varētu?

Link to comment
Share on other sites

Tā var protams, tas strādās, bet tā nav labi - jo no mysql tiek izvilkta visa tabula (nu dati), bet saglabāti tikai 10 ieraksti. Lieka datu pārraidīšana no mysql->php.

Vajag uz LIMIT keywordu paskatīties mysql dokumentācijā (kurš nodrošina tikai fiksētu ierakstu skaita atgriešanu) un palasīt vecākus foruma ierakstus:

http://php.lv/f/index.php?showtopic=1396&hl=

http://php.lv/f/index.php?showtopic=1396&hl=

http://php.lv/f/index.php?showtopic=765&hl=

http://php.lv/f/index.php?showtopic=1205

http://php.lv/f/index.php?showtopic=2062

Link to comment
Share on other sites

×
×
  • Create New...