【问题标题】:PHP variable returns a null valuePHP 变量返回一个空值
【发布时间】:2013-03-25 23:21:46
【问题描述】:

我创建了一个文本框,因此当管理员输入名称并单击提交时,它将显示从数据库中检索到的数据列表。

    <form method="post" action="">
        <?php 
        $teacherName = $_POST['teacherName'];
        if ($_POST['submitted'] == 1) {
            if($teacherName != ""){
                $getName = mysql_query("SELECT name, user_id FROM members WHERE name = '$teacherName'");
                $teacherdetails = mysql_fetch_array($getName);
                $teachername = $teacherdetails['name'];
                $teacher_id = $teacherdetails['user_id'];

                if($teachername != ""){
                    print $teachername . "<br/>";
                } else {
                    print "Give a valid name <br/>";
                }     
            }
        }

        if ($teachername == ""){ ?>
        Teacher name:<input type="text" size="20" name="teacherName"><input type="hidden" name="submitted" value="1"><br/>
      <input type="submit" value="Submit" /> 


<?php $getModule = mysql_query("......"); 
          while ($row2 = mysql_fetch_array($getModule)) { ?>   
          <input type="checkbox" name="modules[]" value="<?php print $row2["module_id"]?>"/> <?php print $row2["module_name"] . '<br/>'; } ?>
          </div><br/> <?php } ?>
          <input type="submit" value="Submit" />
</form>

下面我写了这段代码(在同一个脚本中):

<?php

$modules = $_POST['modules'];

for($i = 0; $i < count($modules); $i++){
    $module=mysql_query("INSERT INTO module (module_id,user_id) VALUES ('$modules[$i]','$teacher_id')"); 
}
?>

但由于某种原因,当我调用变量“$teacher_id”(这是我之前从数据库中检索到的值。它在表单中工作正常)时,它什么也不返回。它是空的,但我不明白为什么。

我做错了吗?

【问题讨论】:

  • 你能发一份$teacherdetails的转储吗?谢谢。
  • 您正在使用带有 sql 注入漏洞代码的已弃用库
  • 两个调用肯定在同一个范围内吗?
  • 我真的很抱歉伙计们,但你能详细解释一下吗?我真的不明白你的意思。 :(
  • 两者在同一个脚本中,一个在表单中,第二个在html表单下面的php中。

标签: php html mysql forms textbox


【解决方案1】:

首先,将 PHP 放在表单标签之外的顶部。

其次,您接收的数据可能是一个数组;具有多个结果集;

这样做只是以防它返回;

 foreach($teacherdetails AS $teacher) {
//also set the values of the variables here
echo $teacher['name'];
echo $teacher['user_id'];

} 

关于最后一位,$teacher_id是否成功打印了结果?

另外,输入和发布的模块在哪里?

【讨论】:

  • 它总是只有一个名字。它在表单中工作正常。如果我尝试打印 $teacher['name'];和 $teacher['user_id'];它会正常工作。问题是当我在 PHP 中调用 $teacher_id 时。
  • 在页面底部回显名称和ID,看看它是否给出了结果。
  • 如果我没记错的话,我在表单中有一个查询。我没有添加它,因为它很大。如果你愿意,我现在可以做
  • 是的,这会有所帮助
  • 如果变量在 for 循环之外,它会给出结果。所以我认为问题在于 for 循环... for($i = 0; $i
猜你喜欢
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多