2012-01-12 18 views
0

挿入されたURLから文字長を加算しようとしています。選択したURLを配列のデータベースから取得し、foreach関数でそれらを追加しようとしています。SQL配列から文字列長を追加する

function countLen($email) { 

    $countLen = mysql_query("SELECT url FROM urls WHERE user='$email'"); 
    $resultLen = mysql_result($countLen, 0); 

    foreach($resultLen as &$string) { 


     $length = strlen($string); 
     $totallen = ($totallen + $length); 

     return $totallen; 




    } 





} 
+2

あなたはforeachの内側から戻ってきているようです。あなたはそれをするつもりでしたか? –

+1

return文をforeachループの外に移動する必要があります。 –

答えて

6

あなただけのSQL内のすべての加算を行うことができます:

function countLen($email) 
{ 
    $res = mysql_query("SELECT SUM(LENGTH(url)) as 'sum' FROM urls WHERE user='$email'"); 
    return current(mysql_fetch_array($res)); 
} 
+0

は完璧に感謝します – HarryBeasant

+0

大歓迎です。 – webbiedave

2

試してみてください。

$total = 0; 

$res = mysql_query("SELECT url FROM urls WHERE user='$email'"); 
while($row = mysql_fetch_assoc($res)) 
{ 
    $total += strlen($row['url']); 
} 
1

リターンがループアウトサイドでなければなりません。..のような

function countLen($email) { 

    $countLen = mysql_query("SELECT url FROM urls WHERE user='$email'"); 
    $resultLen = mysql_result($countLen, 0); 
    $totallen = 0; 
    foreach($resultLen as &$string) { 
    $length = strlen($string); 
    $totallen = ($length + $totallen); 
    } 
    return $totallen; 
} 
関連する問題