当前位置: 首页 > 知识库问答 >
问题:

如何仅返回满足用户搜索条件选定行

蒋航
2023-03-14

我有一个网页(我是php初学者,只有1.5个月的书籍例子),允许用户输入一个gpa,然后搜索符合最低输入的学生。当单击search按钮时,它从php文件中调用一个函数来查询数据库。我的代码几乎正常工作。问题是它是返回所有的学生,我想返回只行符合最低gpa输入。尝试使用HAVING子句和其他子句,但仍然没有返回我想要的内容。谢谢!

sql Fiddle链接: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>

共有1个答案

蓝恩
2023-03-14

在代码中使用以下内容:

 $query = 'SELECT *
      FROM student 
      WHERE GPA >= :GPA
      ORDER BY studentID';
 $statement->bindValue(':GPA', $GPA, PDO::PARAM_STR);

这将搜索GPA大于或等于$GPA的学生,如果要检索仅有该GPA的学生,则更改,其中GPA=:GPA

 类似资料:
  • 问题内容: 我有一个包含ID,WorkerID,IsActive标志(1或0)和LocalTime的表。每次工作人员处于活动状态或不活动状态时,都会使用WorkerID,1或0标志记录以及一个时间(LocalTime)创建一条记录。 我想插入一个新表中:从该表中,对于每个唯一的WorkerID,仅当该记录的IsActive标志为1时,才为该唯一的WorkerID选择具有最新LocalTime的记录

  • 希望我不会把事情搞复杂。我编写了以下SQL,返回用户他们最近的事务满足一个条件(TRANS_TYPE NOT IN(4,6,21,23)或DESTORIT_OPTION&64<>64)。 我通过使用 前面代码中的sub查询将返回所有用户的所有事务,并按DESC顺序对其进行排序,外部SELECT将通过检查rank 1事务来显示满足条件的用户。 我想要的是像这样的东西 FOREACH user如果用户

  • 我正在写一些代码,有些事情让我困惑。我有一个名为的数字数组。现在我想遍历这个列表,如果一个值高于60,例如,我想创建一个新的对象数组(集合),在那里我们存储高值,它的索引来自原始数组。所以以下面的代码为例 控制台。日志输出如下 这个输出是我所需要的,但是如何防止返回未定义的值呢?我考虑过使用数组。但这似乎不合适?我应该使用不同的数组方法吗?我不想使用for循环并推送到一个新数组,除非这是在不返回未

  • 假设我有这个HTML: 现在我要访问 ,它与标记在同一个tr中,带有href“Amazon”。最好的方法是什么?我需要一个for循环覆盖所有的div吗?还是我可以使用@findby注释?我是否需要多个@findby或@findall来获取列表中的所有div以便为Amazon检查这些div?

  • 问题内容: 我曾经只使用可以执行查询的Tomcat和JSP页面,然后将查询结果分配给数组或对象,然后通过响应将数据传递到客户端。 在客户端jsp代码中,我可以执行以下操作: $ {errorMessage} 然后是“这是错误!” 消息将会显示。 我想对REST JAX-RS GlassFish v3做同样的事情。 这导致了我从未见过的神秘异常。 那么,如何将用户重定向到report.jsp并传递“

  • 本文向大家介绍计算满足C ++中给定条件的索引对,包括了计算满足C ++中给定条件的索引对的使用技巧和注意事项,需要的朋友参考一下 我们给了前N个自然数的排列数组。这里的目标是找到满足以下条件的元素的索引对- 如果数组是Arr [],则i,j是索引,对元素对进行计数,使Arr [i] + Arr [j] = max(Arr [x])使得i <= x <= j。 即,Arr [i]和A [j]之和等