ユーザはgpaを入力し、入力された最小値を満たす学生を検索するためのWebページを用意しています(私は初心者のphpです) 。検索ボタンをクリックすると、phpファイルから関数を呼び出してデータベースに問い合わせます。私のコードはほぼ正しく動作しています。問題はすべての生徒を返すことであり、入力された最小のGPAを満たす行のみを返すことです。 HAVING句などを使用しようとしましたが、依然として私が望むものが返されません。ありがとう! SQLフィドルへユーザ検索条件を満たす選択行だけを返すには
リンク:http://www.sqlfiddle.com/#!2/be9da
HTML:
<script type="text/javascript">
function queryStudent() {
var ajaxRequest = new XMLHttpRequest;
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
document.getElementById("ajax_output").innerHTML = ajaxRequest.responseText;
}
};
ajaxRequest.open("GET", "gpa_search.php", true);
ajaxRequest.send(null);
}
</script>
<form name="student">
<label>Minimum GPA: </label>
<input type="text" id="GPA" name="gpa"><br><br>
<input type="button" onclick="queryStudent();" value="Search" id="button">
</form><br>
<!--output section after search-->
<section id="ajax_output">
</section><br><br>
<p>Students with higher than minimum GPA will be displayed here.</p><br>
<a href="search_split.htm">Search & Split</a>
は、PHP:
<?php
//get user input from text box on index.htm
$GPA = filter_input(INPUT_GET, 'GPA');
//Code for query
$query = 'SELECT *
FROM student
ORDER BY studentID';
$statement = $db->prepare($query);
$statement->bindValue(':GPA', "%".$GPA."%", PDO::PARAM_STR);
$statement->execute();
$students = $statement->fetchAll();
?>
<!--table to hold output-->
<table>
<tr>
<th>Student ID</th>
<th>Name</th>
<th>Email</th>
<th>GPA</th>
</tr>
<?php foreach ($students as $student) : ?>
<tr>
<td><?php echo $student['studentID']; ?></td>
<td><?php echo $student['name']; ?></td>
<td><?php echo $student['email']; ?></td>
<td><?php echo $student['GPA']; ?></td>
</tr>
<?php endforeach; ?>
</table>
<body>
</body>
</html>
投稿されたメソッドはどれも働いていません。それはSQLクエリでなければならないが、何かが正しく動作していない。 – allendks45