0

私のデータベースには、30 人のユーザーの名前を持つテーブルがあります。検索フォームである次のhtmlフォームがあります。

<form method="POST" name="go" action="search_form_all.php"  >
  <input name="value" type="text" id="search_form_1" size="65"  />
  <input type="submit" value="" name="submit" />
</form> 

次に、次の php スクリプトを使用すると、結果としてフォームにデータベースのすべての名前が表示されます。

if(isset($_POST['value'])== true && empty($_POST['value']) == false){

$value = mysql_real_escape_string($_POST['value']);

$name_and_surname = explode(" ", "$value ");

$name = $name_and_surname[0];
$surname = $name_and_surname[1]; 

$query = mysql_query(" SELECT `name`, `surname`, `email`, `user_id` FROM users WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE '$surname%' AND name LIKE '$name%') LIMIT 10  ");

while($run = mysql_fetch_array($query)){
  $name = $run['name'];
  echo" $name  "; 
}

上記のコードを実行すると、最初の 10 個の名前が取得されます (SQL クエリの制限が 10 であるため)。私が欲しいのは、ユーザーがそれを押して残りの10名を抽出し、次に残りの10名を30名すべてが抽出されるまでボタンを押すことだけです。これどうやってするの?

4

3 に答える 3

0

SQL LIMIT 関数は複数の数値を処理できます。たとえば、LIMIT 10, 20 は 10 番目から 20 番目の結果を出力します。

フォームと投稿で何かを理解して、それを有利に利用できると確信しています

SQL LIMIT の詳細については、http: //php.about.com/od/mysqlcommands/g/Limit_sql.htmを参照してください。

于 2013-07-03T11:13:53.717 に答える
0
SELECT `name`, `surname`, `email`, `user_id` 
FROM users 
WHERE (surname LIKE '$name%' AND name LIKE '$surname%') 
OR (surname LIKE '$surname%' AND name LIKE '$name%') 
LIMIT $offset, 10;

あなたの場合、オフセットは1,11,21になる可能性があります

于 2013-07-03T11:13:59.327 に答える
0

Web 用語でPAGINATIONと呼ばれる洗練されたソリューションを使用できます。データのチャンクを取得し、次のページを指すリンクを出力するだけです。http: //www.phpfreaks.com/tutorial/basic-paginationが役立つ場合があります

その値を使用して、必要に応じて操作できます。たとえば、LIMIT ステートメントで使用できます。

于 2013-07-03T11:23:18.997 に答える