<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>User-Jurisdiction</title>
</head>
<body>
<form action="?action=ask" method="post">
Key:<input type="text" name="key_in" />
<input type="submit" value="Go" />
</form>
<?php
if($_GET['action']=='ask')
{
  $key_in=$_POST['key'];
  $conn=mysql_connect("216.83.61.xxx","xxx","xxx");
  mysql_select_db("lianmeng7",$conn);
  mysql_query("set names gb2312");
  
  $query="select * from hongling_user where key='$key'";
  $result=mysql_query($query); 
  $rows=mysql_num_rows(mysql_query($query));
  if ($rows==0){
  echo "[nothing]";
  exit;
  }
  while ($row=mysql_fetch_array($result))
  { 
   echo "Now=[",date("Y-m-d"),"]    ";
   echo "BeginTime=[",$row[begintime],"]    ";
   echo "AllTime=[",$row[alltime],"]    ";
   echo "Jurisdiction=[",$row[jurisdiction],"]    "."<br>";
  }
  mysql_close($conn);
}
?>
</body>
</html>上面代码的功能是查询数据库中的某项值,如果存在,就返回其它对应的内容,如果不存在就返回nothing。
我输入了一个数据库已存在的值,但始终是返回nothing,我确定数据库里存在所要查询的值,请问上面代码错在哪里?

解决方案 »

  1.   


     $key_in=$_POST['key'];
    //这一行,html代码中文本输入框的name不是key_in吗,
    $key_in=$_POST['key_in'];//改成这样呢
      

  2.   

    楼上说的对。页面不存在name=key的控件.改为: $key=$_POST['key_in']; 
      

  3.   

    1、从你的代码上看,并没有存在 $_GET['action']的可能,也就谈不上 $_GET['action']=='ask' 了2、即便你构造出 $_GET['action']=='ask'
    表单中也只有 key_in,而无 key
      

  4.   

    谢谢楼上几位的解答。呵呵,这个的确是我不够细心,我该成这句了:$key=$_POST['key_in'];但是问题依然存在,依然查找不出任何内容,依然返回空,显示nothing.我用mysql的生成PHP代码的功能,生成的查询代码为什么是这个形式呢:
    $sql = 'SELECT * FROM `hongling_user` WHERE `key`=\'12321-123145-45454\''; 
      

  5.   

    我知道原因了,正确的格式应该是这样的:$query="SELECT * FROM `hongling_user` WHERE `key` = '$key'"; 
    特别注意:在=号前面和后面都必须有个空格,否则就会报错,哎,PHP的格式居然如此....
      

  6.   


    <form action="?action=ask" method="post">
    //下面用get方法?