0

PHPで、50文字を超える長さの文字列のみを表示し、130文字を超えて表示されないように切り捨て、結果を1つに制限する機能は何ですか?

たとえば、結果セットに 30 行あるとしますが、これらのパラメーターを持つ最新の行のみを表示したいとします。最新の行が 25 文字の場合、表示されません。文字列の長さが 50 文字以上の最新のもののみを表示する必要があります。

4

2 に答える 2

1

SQL クエリを使用します。最新のものを見つけるには、auto_increment 主キー (id と呼ぶのは間違っています) または行が作成された日付/時刻 (time_created など) のいずれかで max が必要です。

だから私は次のテーブルを想定しています:id(int)、stringVal(string、char()、varchar()、何でも)

SELECT MAX(id),  SUBSTRING(stringVal, 1, 130)
FROM yourTable
WHERE LENGTH(stringVal) > 30

必要に応じて、id を時間フィールドに置き換えます。それらのいずれかがなければ、最新のものを見つけるのに苦労するでしょうが、いつでも任意に 1 つの行を選択できます。

--編集-- PHP で mysql 関数を使用して上記のクエリを実行し、必要な出力をフェッチするサンプル

$sql = "SELECT MAX(id),  SUBSTRING(stringVal, 1, 130) FROM yourTable WHERE LENGTH(stringVal) > 30";
$r = mysql_query($sql, $conn); //im hoping $conn or something like it is already set up
$row = mysql_fetch_assoc($r);
$desiredString = $row['stringVal'];
于 2010-11-30T04:32:10.003 に答える
0

このようなことは、最初に最新のアイテムで並べ替えてデータを取得することを確認する必要があります. break ステートメントは、条件に一致する最初の結果が見つかった後にループが終了することを保証します...

foreach($array_returned_from_query as $row)
{
    if(strlen($row) > 50)
    {
        echo substr($row, 0, 130);
        break;
    }
}
于 2010-11-30T04:03:41.090 に答える