Jump to content
php.lv forumi

Recommended Posts

Posted

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.

Posted (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 by Delfins
Posted (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 by Aleksejs
Posted (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 by codez
Posted

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];

×
×
  • Create New...