在php中输入两个值作为输入

时间:2017-04-06 06:38:47

标签: php

在我的下面的PHP代码中,学生名单和姓名作为输入,学生地址和标记将根据它显示。但只有我只提供1个输入时代码才有效。

<?php 

 if($_SERVER['REQUEST_METHOD']=='GET'){

 $rollno  = $_GET['rollno'];
$name  = $_GET['name'];


 require_once('dbConnect.php');

 $sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'";

 $r = mysqli_query($con,$sql);

 $res = mysqli_fetch_array($r);

 $result = array();

 array_push($result,array(

 "address"=>$res['address'],
 "marks"=>$res['marks']
 )
 );

 echo json_encode(array("result"=>$result));

 mysqli_close($con);

 }

3 个答案:

答案 0 :(得分:0)

替换$sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'";

"SELECT * FROM colleges WHERE rollno='".$rollno."' and name='".$name."'";

答案 1 :(得分:0)

  

$ sql =&#34; SELECT * FROM学院WHERE rollno =&#39;&#34;。$ rollno。&#34;&#39;&#34;和姓名=&#39;&#34;。$ name。&#34;&#39;&#34;;

更正:

  

$ sql =&#34; SELECT * FROM Colleges WHERE rollno =&#39;&#34;。$ rollno。&#34;&#39;和姓名=&#39;&#34;。$ name。&#34;&#39;&#34;;

但为了更好,你应该使用准备好的陈述 示例

$link = mysqli_connect("localhost", "my_user", "my_password", "db_name");
$query = "SELECT * FROM colleges WHERE rollno=? AND name=?"; 
$params = array($rollno,$name); 
mysqli_prepared_query($link,$query,"ss",$params) 

答案 2 :(得分:0)

检查并确保代码中的$ sql查询行正确,因为它在您的问题中不正确。

$sql = "SELECT * FROM colleges WHERE rollno='".$rollno."'" and name='".$name."'"; 

应该是

$sql = "SELECT * FROM colleges WHERE rollno='" . $rollno . "' and name='" . $name ."'";

或使用单引号提高性能:

$sql = 'SELECT * FROM colleges WHERE rollno = "' . $rollno .'" and name= "' . $name ."';

其次,你的$ rollno的数据类型是什么,如果它不是字符串,那么考虑删除它周围的单引号。

第三,确保两列都是rollno,name一直都有变量,正确的查询,否则你都会得到一个Null结果。

最后,我强烈建议您下次使用pdo及其准备好的声明。