未定义的变量:查询,当表单选择仅发送空数据时(按选择)

时间:2013-02-14 06:08:11

标签: php mysql sql forms echo

我正在使用表单和接收php页面来回显数据库中的数据,这是一个提出三个选择/菜单操作的表单,因此在接收页面中使用了三个不同的变量。

在三个选择/菜单上,我喜欢顶部列出的值为空,只需使用如下代码显示“ - ”:

 <td>Alphabetical Company Name</td>
                          <td><select name="alpha" id="alpha">
                            <option value="">-</option>
                            <option value="a">A</option>
                            <option value="b">B</option>
                            <option value="c">C</option>

所以当用户打开form.php页面时,框中选择的第一个选项/值只是“ - ”。

我构建了接收表单结果的页面,以回显包含数据库中所选数据的表。

一切正常但是当我没有在三个选择/菜单上选择任何值并点击提交按钮时,我得到一个:notice: Undefined variable: query in ... Query was empty

此处提到的query引用:$result = mysql_query($query) or die(mysql_error());

我认为,如果三个选择/菜单没有发送任何值,则SELECT进程无法启动,因此$result = mysql_query($query)不会收到任何query,但如何我是否解决了这个问题(一般情况下),以便当用户保持三个选择/菜单没有值时,“未定义变量”警告/错误不会发生?

对不起,如果我的英语不清楚,那么问题很基本。

3 个答案:

答案 0 :(得分:0)

我认为您的表单不会发布。

答案 1 :(得分:0)

通常在我们将表单数据发送到服务器之前,我们必须验证客户端和服务器端必需的表单字段。

我们在客户端验证时使用jQuery or JavaScript,并在此使用PHP因此请在服务器端使用此验证,其后面是

if($_GET) 
{

   if($_GET['alpha'] != NULL && !empty($_GET['alpha'])
   {

    // your code here
   }
}
else
{
    // Handle error here
}
  

将$ _GET方法替换为您在表单中使用的任何表单方法。

答案 2 :(得分:-1)

我补充说:

else if(!($req && $req2 && $req3 == NULL))
{
$query = NULL;
} 

之前的

$result = mysql_query($query) or die(mysql_error());

它现在工作正常,我只有“查询为空”的消息,这是自我解释。感谢所有人的时间和答案