andrisp Posted November 21, 2008 Report 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.
Delfins Posted November 21, 2008 Report 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
andrisp Posted November 21, 2008 Report Posted November 21, 2008 Es tos ātrumus salīdzināju vienkārši ciklēšanai cauri ierakstiem bez komatu izdrukāšanām.
Aleksejs Posted November 21, 2008 Report 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
codez Posted November 21, 2008 Report 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
codez Posted November 21, 2008 Report 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];
Recommended Posts