MySqlデータベースに添付されたテキストボックスを持つページがあり、姓を使用している人々のレコードを検索するために使用されます。テキストボックスと2つのプルダウンを使用してPHPページのMySql結果を検索してフィルタリングする
ページをより便利にするために、2つのプルダウンメニューを追加しました。 1つのメニューは記念館の場所、もう1つは第一次世界大戦、第二次世界大戦などの紛争のためのものです。プルダウンメニューを検索結果のフィルタとして使用したいと思います。
プルダウンメニューとして、レコードの結果を与え、独立しても、テキストボックスを使用する必要があるとします:
- 姓
- 姓+記念
- 姓+対立
- 記念
- メモリアル+コンフリクト
- コンフリクト
フォームの私が持っているコードは次のとおりです。
<div class="memorialphp">
<form action='./memorial.php' method='get'>
<!-- $surname or 'surname' -->
<input type='text' name='term' placeholder="Search...">
<!-- $memorial or 'memorial' -->
<select name="memorialsearch">
<option value=" ">All Memorials</option>
<option value="Hinckley War Memorial">Hinckley War Memorial</option>
<option value="Burbage War Memorial">Burbage War Memorial</option>
<option value="Barwell War Memorial">Barwell War Memorial</option>
<option value="Earl Shilton War Memorial">Earl Shilton War Memorial</option>
</select>
<!-- $conflictsort or 'conflictsort' -->
<select name="confictsearch">
<option value="">All Conflicts</option>
<option value="1">World War I</option>
<option value="2">World War II</option>
<option value="3">20th Century Wars</option>
</select>
</form>
</div>
PHPのために私が持っているコードは次のとおりです。
<?php
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM search WHERE surname LIKE '%".$term."%' ORDER BY surname, fullname, conflictsort";
$r_query = mysql_query($sql);
if(mysql_num_rows($r_query)){
while ($row = mysql_fetch_array($r_query)){
$id = $row['id'];
$initial = $row['initial'];
$surname = $row['surname'];
$fullname = $row['fullname'];
$dob = $row['dob'];
$born = $row['born'];
$service = $row['service'];
$enlisteddate = $row['enlisteddate'];
$enlisted = $row['enlisted'];
$number = $row['number'];
$rank = $row['rank'];
$batt = $row['batt'];
$unit = $row['unit'];
$section = $row['section'];
$died = $row['died'];
$death = $row['death'];
$memorial = $row['memorial'];
$conflict = $row['conflict'];
$conflictsort = $row['conflictsort'];
$biography = $row['biography'];
$link = $row['link'];
echo"<h4>$surname</h4>
<b>Name:</b> $fullname - <b>Rank:</b> $rank ($number) - <b>Regiment:</b> $batt $unit $section
<br /><b>Birth:</b> $dob $born
<br /><b>Enlisted:</b> $service - $enlisteddate $enlisted
<br /><b>Died:</b> $died $death
<br /><b>Memorial:</b> Shown as $initial$surname at $memorial
<br /><b>Confilct:</b> $conflict
<br /><b><a href='$link'>$biography</a></b>
<br /><br /><br />";
}
}else{
echo "<br /><br /><br /><br /><br /><p><b>No records, please try again...</b></p>";
}
}
?>
私は合計初心者ですのでご注意ください、理想的なソリューションでしょうコードを変更して、どのように変更されたのかを説明してください。
私はmysqli_num_rows [コード] 場合($)維持する必要があります{ \t $のSQLが= $ここで、 "1検索SELECT * FROM" を@xzoertご協力いただきありがとうございます。 \t $ r_query = $ db-> query($ sql); \t \t \t \t (mysqli_num_rows($ r_query)){ \tながら($行= mysqli_fetch_array($ r_query)){ \t \t $番号= $行[ 'ID']であれば、 [/ code] – GrahamUK33
メッセージが乱雑になって申し訳ありませんが、見た目にコードを並べることはできません。 – GrahamUK33
はい、クエリの後のコードは、すでに持っているものと同じでなければなりません(mysql_xxxの代わりにmysqli_xxxを使用する場合を除く)。 – xzoert