2011-10-17 16 views
1

例如,在另一個查詢的while循環內查詢中,我有一個mysql_num_rows結果爲4,8,15,16,23,42。我的問題是,我怎樣才能在while循環中完成所有結果? (總計133)謝謝。在while循環中合計mysql_num_rows的總數

編輯:

怎麼樣,如果我想按我的while循環中mysql_num_rows的每個結果的百分比是多少?例如:4,8,15,16,23,42。共是4 = 4/$總和= 3.7%,8 = 8/$總和= 7.4%108 $總和= 108百分比等..

+1

添加他們在'while'循環外聲明的變量? '$ total = 0; while($ stuff){$ total = $ total + mysql_num_rows();} ...' –

+0

我們可以看到代碼嗎?主循環外的變量初始化爲零,然後在while循環中添加mysql_num_rows結果? – Genzume

+0

+1使用電視連續劇迷失的數字。 :) – Nathan

回答

1

嘗試是這樣的:

$Sum = 0; 
while ($SomeInvariant) 
{ 
    mysql_query($SomeQuery); 
    $Sum += mysql_num_rows(); 
} 

echo 'The sum is: ' . $Sum; 

但是,這種方法效率不高(如果$SomeInvariant在許多迭代中都是正確的,那麼您的應用程序擁有更多併發用戶?)。爲了解決這個問題,我建議重新構建您的方法,以便在SQL中完成添加。這樣,您的查詢可能如下所示:SELECT SUM(ColumnName) FROM ...

UPDATE:解決在評論

後續問題如果您還沒有提供查詢的總和,那麼你就必須遍歷數據集的兩倍。第一遍,你會計算總和。在第二遍中,您將計算每個值與總和的比率。

例如:

$Sum = 0; 
$Rows = array(); 
while ($SomeInvariant) 
{ 
    mysql_query($SomeQuery); 
    $Value = mysql_num_rows(); 
    $Rows[] = $Value; // Push the value onto the row array 
    $Sum += $Value; // Add the value to the cumulative sum 
} 

echo 'The sum is: ' . $Sum; 

foreach ($Rows as $Row) 
{ 
    echo $Row . '/' . $Sum . ' = ' . number_format($Row/$Sum) . '%'; 
} 
+0

「$ Sum + = mysql_num_rows();」 - 先生非常感謝您。我不知道'+ ='是可能的。 LOL非常感謝 – theglove

+0

所有PHP操作員都有一個「操作指派」表單。例如,運算符「A x = B」等價於「A = A x B」,其中'x'是任何PHP運算符('+','-','*','/','<<', '> >','.'等) –

+0

如果我想在每個循環中得到mysql_num_rows的每個結果的百分比,那該怎麼辦?例如:4,8,15,16,23,42。總和爲108. $ sum = 108. 4 = 4/$ sum = 3.7%,8 = 8/$ sum = 7.4%等等。 – theglove