【PHP】이름 검색 기능: 부분 일치 검색 및 검색 KW 저장 처리
※ HTML과 PHP의 기술 조합 더러워 웃음
이번 포인트는요.
• 검색 창에 입력한 KW를 그대로 유지
• 애매한 검색
네.
특히 썸 검색에서'%'를 입력하면 모든 데이터를 끌어온다
반드시 도피 처리를 해야 한다.
※ 참고할 수 있는 URL은 잠시 후에 기재해 주십시오.
select.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>名前検索機能</title>
</head>
<body>
<form action="" method="post">
<p>検索したい人の名前を入力してください</p>
<input type="search" name="search" placeholder="キーワードを入力" value="
<?php
if (!empty($_POST['search'])) {
echo $_POST['search'];
}
?>">
<input type="submit" name="submit" value="検索">
</form>
<?php
$db = 'mysql:host=hogehoge; dbname=hogehoge-hogehoge';
$user = 'hogehoge';
$password = 'xxxxxx';
$dbh = new PDO($db, $user, $password);
try {
if (!empty($_POST['search'])) {
?>
<?php
$dbh = new PDO($db, $user, $password);
$stm = $dbh->prepare("SELECT * FROM user WHERE name LIKE :user_name");
$stm->bindValue(":user_name", '%' . addcslashes($_POST['search'], '\_%') . '%');
$stm->execute();
if ($stm->rowCount()) {
?>
<table border='1'>
<tr>
<th>id</th>
<th>名前</th>
<th>身長</th>
<th>誕生日</th>
<th>趣味</th>
</tr>
<?php
foreach ($stm as $value) {
echo '<tr>';
echo '<td>' . $value['id'] . '</td>';
echo '<td>' . $value['name'] . '</td>';
echo '<td>' . $value['height'] . '</td>';
echo '<td>' . $value['birthday'] . '</td>';
echo '<td>' . $value['hobby'] . '</td>';
echo '<tr>';
}
} else {
echo '該当するユーザーがいません';
}
} else {
echo '文字を入力してください';
}
} catch (PDOException $e) {
echo 'エラーです!';
}
?>
</body>
</html>
출력은 이런 느낌.※ 입력한 내용이 없는 상태
"%"로 검색할 때
※ 이름의 일부가 미리% 추가되었습니다.
이 부분은 처리를 피하기 위한 상응하는 부분이다
select.php
$stm->bindValue(":user_name", '%' . addcslashes($_POST['search'], '\_%') . '%');
Reference
이 문제에 관하여(【PHP】이름 검색 기능: 부분 일치 검색 및 검색 KW 저장 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jyunia0110/items/7166c6146fbf0b9d8d80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)