andrisp Posted November 21, 2008 Report Share Posted November 21, 2008 Es tikko izmēģināju salīdzināt tos ātrumus: Selektējot 10000 rindiņas, for ātrums bija apt. ~0.1 sekundes. While ātrums ~0.055 sekundes. Ja tam for ciklam mysql_num_rows iznes ārā, lai katru reizi to nepārbaudītu, tad ātrums nokritās uz 0.065 (kas tāpat ir lēnāk nekā while). Nemaz nerunāsim par to, ka for izmantošana šādā veidā ir, maigi sakot, dīvaina. Link to comment Share on other sites More sharing options...
Delfins Posted November 21, 2008 Report Share Posted November 21, 2008 (edited) nu tas ātrums tāds relatīvs. Pārs operācijas tik atšķirās php "zemapziņā" FOR: salīdzina fetčo pieskaita +1 WHILE: fetčo salīdzina PS: v3rbo variants būs visātrākais (bez papildus mainīgā $i) Edited November 21, 2008 by Delfins Link to comment Share on other sites More sharing options...
andrisp Posted November 21, 2008 Report Share Posted November 21, 2008 Es tos ātrumus salīdzināju vienkārši ciklēšanai cauri ierakstiem bez komatu izdrukāšanām. Link to comment Share on other sites More sharing options...
Aleksejs Posted November 21, 2008 Report Share Posted November 21, 2008 (edited) Ja jau visi dalās, tad arī es gribu ;) $query = "SELECT name FROM tabulina"; $kverijs = mysql_query($query); $echojamais = ''; while($izvade = mysql_fetch_array($kverijs)){ $echojamais .= $izvade['name'] . ','; } echo substr($echojamais,0,-1); Edited November 21, 2008 by Aleksejs Link to comment Share on other sites More sharing options...
codez Posted November 21, 2008 Report Share Posted November 21, 2008 (edited) Īsākais variants: foreach($db->query('SELECT name FROM tabulina)->fetch_all(1) as $k =>$r){echo($k==0?'':', '),$r['name'];} $db ir mysqli instance. EDIT: vēl bišku īsāks: foreach($db->query('SELECT name FROM tabulina)->fetch_all() as $k =>$r){echo($k==0?'':', '),$r[0];} Edited November 21, 2008 by codez Link to comment Share on other sites More sharing options...
codez Posted November 21, 2008 Report Share Posted November 21, 2008 sql variants SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM tabulina GROUP BY 1=1; $res=$db->query("SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM tabulina GROUP BY 1=1;"); $row=$res->fetch_row(); echo $row[0]; Link to comment Share on other sites More sharing options...
Recommended Posts