【问题标题】:Undefined variable: query, when a form select sends only empty data (by choice)未定义变量:查询,当表单选择仅发送空数据时(通过选择)
【发布时间】:2013-02-14 06:08:10
【问题描述】:

我正在使用一个表单和一个接收 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,但是我该如何解决这个问题(一般来说)这样当用户保持三个选择/菜单没有值时,“未定义变量”警告/错误就不会发生?

对不起,如果我的英语不清楚并且问题很基础。

【问题讨论】:

  • 请问有php和js代码吗?

标签: php mysql sql forms echo


【解决方案1】:

我认为您的表单没有发布。

【讨论】:

  • 好吧,如果用户将 3 个选择/菜单保持为“空”,那么我有一个“如果...”,它会回显一条消息“请至少选择一项研究的标准”。我不打算开发这种类型的答案,但是某些用户可能会单击而不选择任何值,在这种情况下,我“只是”试图避免出现 sql 错误通知。
【解决方案2】:

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

我们在客户端验证时使用jQuery or JavaScript,而您在此处使用PHP 所以在服务器端使用它来验证,如下所示

if($_GET) 
{

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

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

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

【讨论】:

    【解决方案3】:

    我添加了这个:

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

    之前

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

    它现在工作正常,我只有“查询为空”的消息,这是不言自明的。感谢大家的时间和回答

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2019-02-24
      • 2014-02-16
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      相关资源
      最近更新 更多