1

私はPHP開発にまったく慣れていないので、問題を解決する方法が見つかりません。
Mysql データベースの一部のデータを消去する必要があります。私dateのDBには、次のような期間でいっぱいの列があります

-520;-510;0;-500;-530;-599;-499;-510;-490;-500;0;-450 

そこから最小値と最大値を抽出して、残りの期間が2つだけになるようにします。

私はこれを試しました:

$sql = "SELECT date FROM records WHERE serial = 1";
$requete = mysql_query($sql,$cnx) or die(".mysql_error().");
while($result = mysql_fetch_array($requete))
{
    $res = $result[date];
    $min = min($res);
    $max = max($res);
}

$result[date]min および max 関数は配列でのみ機能するため、機能しないことは理解していますが、新しい配列でmy を変換する方法がわかりません。

4

2 に答える 2

5

これを SQL で行うと、次のように動作するはずです。

$sql = "SELECT MAX( date) as maximum, MIN( date) as minimum
            FROM records 
        WHERE serial = 1
        GROUP BY serial";

次に、結果を取得するには、1 行が必要です。

$requete = mysql_query($sql,$cnx) or die( mysql_error());
$row = mysql_fetch_array($requete);
echo $row['maximum'] . ' ' . $row['minimum'];
于 2012-07-02T16:21:24.480 に答える
0

DBの「日付」フィールドに;で区切られた数字の文字列が含まれていると仮定します。説明したように、explode()関数を使用してその文字列を配列に変換し、その配列でmax()とmin()を使用できます。

$arr = explode(";",$string);
$max = max($arr);
$min = min($arr);

行ごとに1つの数値がある場合は、他の回答で説明されているようにSQLを使用して実行します

于 2012-07-02T16:27:22.490 に答える