Mysql dbテーブルからテキストフィールドを取得する方法はありますが、テキスト全体ではなく、わずか40文字程度です。
これはSQLで行うことができますか、PHPを使用して行う必要がありますか?
基本的に私がやろうとしているのは、最初のx文字を表示し、ユーザーがそれをクリックして完全なコンテンツを表示できるようにすることです。
_SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...
_
LEFT()
関数を参照してください。
経験則として、あなたはPHP MySQLがあなたのためにできることでは決してしてはいけません。このように考えてください。 DBから要求側アプリケーションに厳密に必要なものより。
[〜#〜] edit [〜#〜]Ifデータ全体を使用します同じページ(つまり、中間リクエストなし)の場合、ほとんどの場合、notで全文を一度に取得する理由はありません。 (コメントおよび Veger's answer を参照してください。)
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE
MySQLリファレンスマニュアルの機能:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left
これを試して...
SELECT LEFT(field name、40)FROM table name WHERE condition最初の40および
SELECT RIGHT(フィールド名、40)FROMテーブル名WHERE条件最後の40
他の人が既に示したように、SQLでこれを行うことができます。
しかし、alsoユーザーがクリックしたときに全文を表示したい場合は、全文も必要であり、データベースに短文と全文を送信させるのは無駄のようです。そのため、フルテキストを取得し、ユーザーがクリックしたときに短いテキストとフルテキストを表示するコードを記述することができます。
_$result = mysql_query('SELECT text FROM table');
$row = mysql_fetch_row($result);
echo '<div onclick="alert(\''.$row[0].'\');">'.substr($row[0], 0, 40).'</div>';
_
もちろん、(alert()
の代わりに)クリックすると、もっと良いことができます。また、いくつかのPHPをチェックして、元の文字が40文字より短いかどうかを確認し、このような状況に対処できます。
これもチェックして、
mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');