Javascript 使用XMLHttpRequest显示MySQL内部数据库中的数据

Javascript 使用XMLHttpRequest显示MySQL内部数据库中的数据,javascript,php,mysql,xmlhttprequest,Javascript,Php,Mysql,Xmlhttprequest,我在下面有一个index.htm页面,其中有一个id=“studentGpa”的文本框,用户输入一个数字,程序将打开php页面,搜索数据库,然后从student表中提取数据。我需要显示的数据是用户输入的最小GPA。例如,如果用户输入3.5,则显示GPAs 3.5或以下的所有学生信息(学生ID、姓名、电子邮件、学生GPA) 代码正在编译,但当我输入数字3时,它将显示GPA中有3的学生的所有信息,或者如果我输入3.5,它将显示GPA中有3.5的所有学生的信息。这可能是查询或my index.htm页

我在下面有一个index.htm页面,其中有一个id=“studentGpa”的文本框,用户输入一个数字,程序将打开php页面,搜索数据库,然后从student表中提取数据。我需要显示的数据是用户输入的最小GPA。例如,如果用户输入3.5,则显示GPAs 3.5或以下的所有学生信息(学生ID、姓名、电子邮件、学生GPA)

代码正在编译,但当我输入数字3时,它将显示GPA中有3的学生的所有信息,或者如果我输入3.5,它将显示GPA中有3.5的所有学生的信息。这可能是查询或my index.htm页面上的代码有问题。我是否需要javascript中的if语句或嵌入html中的if语句,以便显示与用户输入的数字相对应的学生信息。下面是程序外观示例的图像。 index.htm


很难理解您的问题是什么,您能更清楚地说明您面临的问题吗?
这不是查询的问题
-相反,这是您的查询的问题!您正在比较文本之类的输入值(
studentGpa-like:studentGpa
),而不是数字。
 <!DOCTYPE html>
 <html lang="en">

  <head>
    <title>Matt Ferebee's Kung Fu School</title>
    <meta charset="utf-8">
     <link href="main.css" rel="stylesheet" type="text/css">

 <script>
  function queryFunction(){
  var ajaxRequest;
   try{
    ajaxRequest = new XMLHttpRequest();
   }catch (e){
    try{
    ajaxRequest = new ActiveXObject("Msxm12.XMLHTTP");
    }catch (e){
        try{
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e) {
        alert("Your browser is broke!");
        return false;
      }
   }
}


ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
    var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}

     var studentGpa = document.getElementById('studentGpa').value; 
 
     var queryString = "?studentGpa=" + studentGpa;
    
     ajaxRequest.open("GET","matthewferebee_search.php" + queryString, true);
     ajaxRequest.send(null);

   }
     </script>
     </head>
         <body>

            <header>
            <h1>Matthew Ferebee's Kung Fu School - Search Students</h1>
            </header>
         <main>
         <section>

        
            <h4>Search for Students with the minimum GPA</h4>
        <form name="myForm">
            Minimum GPA:
        <input type="text" id="studentGpa"><br><br>
        <label>&nbsp;</label>
        <input type="button" onclick="queryFunction();" value="Search"style="margin-left: 98px;">
        </form>
        <div id="ajaxDiv"><h4>Students with GPAs with higher than minimum GPA will be displayed here. 
      </h4></div><br>
  
        <a href="matthew_ferebee_ajaxsearch_single.htm">Search & Split</a>
        </section>
         </main>
      <footer>
                    <p class="right">
                    &copy; <?php echo date("Y");?> Matthew Ferebee Kung Fu School</p>
                    </footer>

    </body>
      </body>
     </html>
 <?php 
 require_once('matthew_ferebee_database.php');
 $studentGpa = filter_input(INPUT_GET, 'studentGpa');
 //echo $studentGpa."<br>";

 $query = "SELECT * FROM student 
            WHERE studentGpa LIKE :studentGpa
            ORDER BY studentID";
            
$statement = $db->prepare($query);
$statement->bindValue(':studentGpa', "%".$studentGpa."%", PDO::PARAM_STR);
$statement->execute();
$students = $statement->fetchAll();
?>

<table cellpadding="0" style="width: 600px">
 <tr>
  <td style="width: 162px">Student ID</td>
  <td style="width: 285px">Name</td>
  <td>Email</td>
  <td>GPA</td>
  </tr>
  <?php 
  foreach ($students as $s)
  {
 ?>
  <tr>
  <td style="width: 162px"><?php echo $s['studentID'];?></td>
  <td style="width: 285px"><?php echo $s['name'];?></td>
  <td><?php echo $s['email'];?></td>
  <td><?php echo $s['studentGpa'];?></td>
  </tr>
 <?php 
 }
 ?>
</table>
DROP DATABASE IF EXISTS matthew_ferebee_assignment_db;
CREATE DATABASE matthew_ferebee_assignment_db;
USE matthew_ferebee_assignment_db; 

/*  
  CREATE TABLE  
 */


 CREATE TABLE STUDENT (
  studentID     INT(11)        NOT NULL     AUTO_INCREMENT,
  name          VARCHAR(255)   NOT NULL,
  email         VARCHAR(255)   NOT NULL,
  studentGpa           DECIMAL(4,2)   NOT NULL,

  PRIMARY KEY (studentID)
  
   );



 INSERT INTO STUDENT (studentID, name, email, studentGpa)
  VALUES
  /*
 StudentID    Name              Email                     GPA              */
 (1,         'Po Black',     'poblack@gmail.com',      3.51),
 (2,         'Shifu Hoffman','shihoffman@gmail.com',   2.52),
 (3,         'Tigress Jolie','tigressjolie@gmail.com', 3.63),
 (4,         'Jennifer Yuh', 'jenniferyuh@gmail.com',  1.44),
 (5,         'Ox Storming',   'ocstorming@gmail.com',   3.95),
 (6,         'Monkey Chan',  'monkeychan@gmail.com',   4.00),
 (7,         'Viper Liu',    'viperliu@gmail.com',     2.37),
 (8,         'Mantis Rogen', 'mantisrogen@gmail.com',  3.29), 
 (9,         'Crane Cross',  'cranecross@gmail.com',   3.72),
 (10,         'Oogway Kim',   'oogway@gmail.com',      1.53),
 (11,         'Ping Hong',    'pinghong@gmail.com',    2.52)
  ;

 /*username and password created along with granting privileges*/
 GRANT SELECT, INSERT, DELETE, UPDATE
 ON matthew_ferebee_assignment_db.*
 TO matthewweb@localhost
 IDENTIFIED BY 'matthewchocolate';