ray Posted January 4, 2008 Report Share Posted January 4, 2008 (edited) ir šāda kods: <?php $sql = mysql_query("SELECT * FROM tabula_1"); if (mysql_num_rows($sql) > 0) { ?> Virsraksts <?php } $sql = mysql_query("SELECT * FROM tabula_1"); while($row = mysql_fetch_array($sql)) { echo $row["lauks_1"]." ".$row["lauks_2"]."<br />"; } ?> kodā tiek veikti 2 pieprasījumi/vaicājumi uz datu bāzi, vai šādu variantu var optimizēt? Edited January 4, 2008 by ray Link to comment Share on other sites More sharing options...
Vebers Posted January 4, 2008 Report Share Posted January 4, 2008 Jā. <?php if ($sql = mysql_query("SELECT lauks_1, lauks_2 FROM tabula_1")) { ?> Virsraksts <?php while($row = mysql_fetch_array($sql, MYSQL_ASSOC)) { echo $row["lauks_1"]." ".$row["lauks_2"]."<br />"; } } ?> Link to comment Share on other sites More sharing options...
andrisp Posted January 4, 2008 Report Share Posted January 4, 2008 Vebers, mysql_query atgriezīs pozitīvu atbildi arī, ja ierakstu skaits būs 0. Link to comment Share on other sites More sharing options...
Kristabs Posted January 4, 2008 Report Share Posted January 4, 2008 a priekš kam divreiz query`ot? <?php $sql = mysql_query("SELECT * FROM tabula_1"); if (mysql_num_rows($sql) > 0) { ?> Virsraksts <?php } while($row = mysql_fetch_array($sql)) { echo $row["lauks_1"]." ".$row["lauks_2"]."<br />"; } ?> Link to comment Share on other sites More sharing options...
Lynx Posted January 5, 2008 Report Share Posted January 5, 2008 mysql_num_rows ir salīdzinoši daudz lēnāks par vienkārši mainīgā palielināšanu, nekad neizmantot * :), kā arī pēc dotajiem piemēriem nav jēgas izmantot fetch_array, ja piekļūstam vērtībām tikai ar kollonas nosaukumu. Šeit pietiek ar fetch_assoc, es darītu šādi: <?PHP $i = 0; $query = mysql_query('SELECT lauks_1, lauks_2 FROM tabula_1'); while($row = mysql_fetch_assoc($query)) { ++$i; if($i === 1) { echo 'Virsraksts'; } echo $row['lauks_1'],' ',$row['lauks_2'],'<br />'; } ?> Tāpat iesaku, nekad neveidot divus identiskus querijus. Labāk pirmā querija atgrieztos datus ielikt array un tad vērsties pie array. Jo gandrīz vienmēr datubāze ir tas elements, kas visvairāk bremzē ātrumu un vērsties pie array būs salīdzinoši ātrāk. Link to comment Share on other sites More sharing options...
Recommended Posts