検索フォームを作成し、結果を別ページに表示したいと思っておりますが、うまくいかないので質問させて頂きます。
・状況
検索ワードが部分一致での結果は表示できるのですが、Yahooのように複数検索すると結果が表示されません。
また、検索ワードの前後に半角スペースや全角スペースなどを入れても同様です。
・ソース
検索フォーム側
<form id="form1" name="form1" method="get" action="search.php">
<label for="textfield"></label>
<input type="text" name="title" id="textfield" />
<input type="submit" name="button" id="button" value="検索" />
</form>
検索結果側(search.php)
<?php require_once('Connections/tm.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_search = "-1";
if (isset($_GET['title'])) {
$colname_search = $_GET['title'];
}
mysql_select_db($database_tm, $tm);
$query_search = sprintf("SELECT * FROM posts WHERE title LIKE %s ORDER BY title DESC", GetSQLValueString("%" . $colname_search . "%", "text"));
$search = mysql_query($query_search, $tm) or die(mysql_error());
$row_search = mysql_fetch_assoc($search);
$totalRows_search = mysql_num_rows($search);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="ttp://www.w3.org/1999/xhtml">
<head>
<meta ttp-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
</head>
<body>
<table width="725" border="1" cellspacing="0" cellpadding="0">
<tr>
<th width="120" scope="col">タイトル</th>
<th width="120" scope="col">内容</th>
<th width="120" scope="col">名前</th>
</tr>
<tr>
<td><?php echo $row_search['title']; ?></td>
<td><?php echo $row_search['message']; ?></td>
<td><?php echo $row_search['n_name']; ?></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($search);
?>
※検索結果側はテスト段階のため、まだ結果を一件のみ表示されるだけとなっています。
ネットで調べると
・全角スペースを半角に揃える
・orやandを使用する
らしき所までしか分かりませんでした。。。
出来れば詳しいソースや参考サイト等がありましたらご伝授をお願い致します。
No.1ベストアンサー
- 回答日時:
複数の文字をand検索するのであれば
WHERE 1
AND `検索フィールド` LIKE '%検索ワード1%'
AND `検索フィールド` LIKE '%検索ワード2%'
AND `検索フィールド` LIKE '%検索ワード3%'
・・・
とします。OR検索なら
WHERE 1
(`検索フィールド` LIKE '%検索ワード1%'
OR `検索フィールド` LIKE '%検索ワード2%'
OR `検索フィールド` LIKE '%検索ワード3%'
・・・
)
みたいな感じです。
あとは受け取ったワードをそのロジックにあてはめるよう
PHP側でスペースで分割してループをすればいいでしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル名が可変の場合のクエ...
-
うまくいきません教えてくださ...
-
MySQL NULLだけをカウントして...
-
SQLです下記の問合せを行うクエ...
-
Xサーバーのバックアップで全サ...
-
php テーブルを作れない
-
SQLです教えてくださいお願いし...
-
SQLです。下記の問合せを行うク...
-
データベースの複製の仕方(mysql)
-
LIMIT で条件を満たしているの...
-
アプリケーションのデータベー...
-
SQLです教えてくださいお願いし...
-
SQLです。こんな感じですか?あ...
-
[XAMPP Control Panel v3.2.4] ...
-
データベースの検索で、この場...
-
MAMPで80ポートが使用されている...
-
下記の問合せを行うクエリを、 ...
-
下記の問合せを行うクエリを、 ...
-
下記の問合せを行うクエリを、P...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームから送信した値とMySQL...
-
php+MySqlでの検索ページ
-
プレースホルダを使った複数カ...
-
MySQLからのデータをページに1...
-
pdfファイルの管理システム
-
mysql limitページ分割
-
mysql+php リストボックスにつ...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
-
プライマリーキーの昇順でソー...
-
Float型の時の計算結果がおかしい
-
RPMのmysqlとmysql-serverの違い
-
ヌル値は記憶容量を必要としな...
おすすめ情報