[英]Optimization for MySQL Query - Fetch PHP
<?php function ss($s1, $s2, $s3, $s4, $s5, $s6) {
$sonucArray = array("alti" => 0, "bes" => 0, "dort" => 0, "uc" => 0, "iki" => 0);
$sayiArray = array($s1, $s2, $s3, $s4, $s5, $s6);
$sayiArraySql = join(',',$sayiArray);
$query = mysql_query("select * from loto where
s1 in ($sayiArraySql) or
s2 in ($sayiArraySql) or
s3 in ($sayiArraySql) or
s4 in ($sayiArraySql) or
s5 in ($sayiArraySql) or
s6 in ($sayiArraySql)");
while ($record = mysql_fetch_array($query)) {
$controlArray = array($record["s1"],$record["s2"],$record["s3"],$record["s4"],$record["s5"],$record["s6"]);
$diffArray = array_diff($sayiArray,$controlArray);
if (count($diffArray) == 0)
$sonucArray["alti"]++;
else if (count($diffArray) == 1)
$sonucArray["bes"]++;
else if (count($diffArray) == 2)
$sonucArray["dort"]++;
else if (count($diffArray) == 3)
$sonucArray["uc"]++;
else if (count($diffArray) == 4)
$sonucArray["iki"]++;
}
return $sonucArray;
}
mysql_fetch_array; 使用太多的CPU並沒有速度!
“ s1-s2-s3-s4-s5-s6”是整數。
相反,應該是什么代碼? 我知道PHP不足。 有人建議我“ mysql_fetch_row”,但我無法通過改寫來寫
我應該怎么?
您的函數使用mysql_fetch_row:
<?php
function ss($s1, $s2, $s3, $s4, $s5, $s6)
{
$sonucArray = array("alti" => 0, "bes" => 0, "dort" => 0, "uc" => 0, "iki" => 0);
$sayiArray = array($s1, $s2, $s3, $s4, $s5, $s6);
$sayiArraySql = join(',',$sayiArray);
$query = mysql_query("select s1, s2, s3, s4, s5, s6 from loto where
s1 in ($sayiArraySql) or
s2 in ($sayiArraySql) or
s3 in ($sayiArraySql) or
s4 in ($sayiArraySql) or
s5 in ($sayiArraySql) or
s6 in ($sayiArraySql)");
while ($record = mysql_fetch_row($query))
{
$controlArray = array($record[0],$record[1],$record[2],$record[3],$record[4],$record[5]);
$diffArray = array_diff($sayiArray,$controlArray);
if (count($diffArray) == 0)
$sonucArray["alti"]++;
else if (count($diffArray) == 1)
$sonucArray["bes"]++;
else if (count($diffArray) == 2)
$sonucArray["dort"]++;
else if (count($diffArray) == 3)
$sonucArray["uc"]++;
else if (count($diffArray) == 4)
$sonucArray["iki"]++;
}
return $sonucArray;
}
mysql_fetch_row僅使用整數而不是字段名稱作為返回數組中的索引。 $ record [0]將根據您的sql請求成為行中的第一個字段。 這就是為什么我在請求中寫每個字段名稱而不僅僅是*的原因,以確保順序相對應。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.