-3

データベースにこのフィールドがあります

email, additionだから私が欲しいのはWHERE email='$email'、データユーザーが追加のために持っていたように見えることです。今、追加フィールドのために私たちは持っています100,100,1000

どうすればこれを計算できますかecho 1200

私のコードは注です。これは単なるサンプルスクリプトコードであり、長いため、ここにコードをコピーして貼り付けることはできません。したがって、タイプミスを見つけた場合は無視してください。

$sql = mysql_query( "SELECT * FROM user WHERE email = '$email' ") or die(mysql_error());
while ( $row = mysql_fetch_array($sql) ){
   echo $row[addition] ++;
}

はい、私はそのフォーマットが正しくないことを知っています。何を変更すればよいですか?forまたはforeachを使用する必要がありますか?それらの計算を追加するために?

tghanks

4

2 に答える 2

2

正しい(正規化された)データ構造を使用すると、次のことができます。

SELECT SUM(addition) AS total FROM users WHERE email = '$email'

Ignasがコメントで述べているように、それをcsvとして列に保存する場合は、データベース構造を修正するか、phpを使用できます。

$sum = array_sum(explode(',', $row['addition']));
于 2012-07-19T10:17:26.443 に答える
0

何か?

$sql = mysql_query( "SELECT * FROM user WHERE email = '$email' ") or die(mysql_error());

while ( $row = mysql_fetch_array($sql) ) {
  $iAdditionSum = 0;
  $aAddition = explode(',', $row['addition']);

  foreach($aAddition as (int) $iAddition) {
    $iAdditionSum += $iAddition;
  }

  echo $iAdditionSum;
}
于 2012-07-19T10:29:53.133 に答える