永发信息网

PHP查询MYSQL问题

答案:4  悬赏:20  手机版
解决时间 2021-04-12 18:13
  • 提问者网友:未信
  • 2021-04-11 21:59

以下两段代码都有一点问题,提交表单后均显示空白页面,请高手指教
<?php
if ( $_GET['botton1'] == "搜索" ) {
$conn=mysql_connect("localhost","root","root")or die("Could not connect: ".mysql_error());
mysql_select_db("school")or die("Could not select database");
$s=$_GET["s"];
$sql="select sname,sc.sno,deptno,cname,cnum,cdept
from sc,student
where sc.sno=student.sno
and sc.sno like '".$s."%'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
echo $row['sname,sc.sno,deptno,cname,cnum,cdept'];
}

}
?>



以及

<?php
if ( $_GET['botton1'] == "搜索" ) {
$mysqli=new mysqli("localhost","root","root","school");
$query="SELECt sname,sc.sno,deptno,cname,cnum,cdept FROM sc,student WHERe sc.sno=student.sno and sc.sno like '".$_GET["s"]."%'"
$result=$mysqli-> query($query,MYSQLI_STORE_RESULT);
while(list($sname,$sc.sno,$deptno,$cname,$cnum,$cdept)=$result->fetch_row())
printf("%d %d %d %d %d %d <br />",$sname,$sc.sno,$deptno,$cname,$cnum,$cdept);
}

?>

最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-04-11 23:31
你的代码有问题,首先:$sql="select sname,sc.sno,deptno,cname,cnum,cdept
from sc,student
where sc.sno=student.sno
and sc.sno like '".$s."%'";这里的数据库字段如果你用完全限定名的话就要全部用完全限定名,也就是说select sname,sc.sno,deptno,cname,cnum,cdept你要写成sc.sname,sc.sno,sc.deptno.......这样的。第二个问题,echo $row['sname,sc.sno,deptno,cname,cnum,cdept']; 这种写法是错误的,你可以写成:echo $row['sname'];echo $row['sno'];cho $row['cname'];这样的。
全部回答
  • 1楼网友:爱难随人意
  • 2021-04-12 02:11

第一个问题出在那个输出语句上面:while($row=mysql_fetch_array($result)){echo $row['sname,sc.sno,deptno,cname,cnum,cdept']; }这样写是不行的。你一数组的形式从数据库中得到数据,输出的时候只能是echo $row['sname']里面只能有一个变量名。

第二个问题也很明显。如果你写的类没有错误的话,while(list($sname,$sc.sno,$deptno,$cname,$cnum,$cdept)=$result->fetch_row()), $result->fetch_row()),fecth_row()中间没有内容,可能是你疏忽了而且你这个语句也有问题,应该是 $mysqli->fetch_row($result)。

  • 2楼网友:冷風如刀
  • 2021-04-12 01:49
你的IF根本就没有进去吧...?先在IF进去的第一行echo一个东西来检查下。用 get 方法传递中文字符的时候你恐怕至少要URL_ENCODE / URL_DECODE一次。
  • 3楼网友:轻熟杀无赦
  • 2021-04-12 00:52

第一问

echo $row['sname,sc.sno,deptno,cname,cnum,cdept'];

换成 print_r($row);

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯