php - 函数内部的数据库查询未发布到页面

标签 php mysql function select-menu

我是 php 函数的新手,目前我正在尝试构建一个 if 语句来查看数据库表以查看名为 tableformatting 的列。这个表是存储我的测验问题的格式选项的地方,例如,如果我想将我的问题的答案显示为下拉菜单,我会在添加测验问题时选择该选项,然后当它被从数据库中拉出时将被格式化。

目前 if 语句是这样的:

    <?php
    // Lookup Question Format & Format Using Function //
    $questionformat="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
    $questionformatresult =mysql_query($questionformat);
    while ($formatrow = mysql_fetch_array($questionformatresult)){
    $format = $formatrow['questionformat']; }

            if ($format == 'questionformatdropmenu')
            {dropdownmenu ();
            }
            else
            {}

     ?> 

格式化函数如下所示:

<?php
    // Question formatting functions //

    // Dropdown Menu
    function dropdownmenu(){

    echo '<select id="quizselectanswer" name="quizselectanswer" title="quizselectanswer">';

    $sql="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
    $result2 =mysql_query($sql);
    while ($data = mysql_fetch_array($result2)){

      echo '<option value ="' . $data['quizanswer1'] . '" >' . $data['quizanswer1'] . '</option>';
      echo '<option value ="' . $data['quizanswer2'] . '" >' . $data['quizanswer2'] . '</option>';
      echo '<option value ="' . $data['quizanswer3'] . '" >' . $data['quizanswer3'] . '</option>';
      echo '<option value ="' . $data['quizanswer4'] . '" >' . $data['quizanswer4'] . '</option>';
        }
      echo '</select>';
      }
    // Question formatting functions END //
    ?>

我遇到的问题是,如果我从函数中取出代码并运行它,该函数可以很好地创建下拉列表菜单,但是由于某种原因数据没有被填充并且下拉菜单只是空白通常情况下,一切都按预期工作,并且菜单中填满了答案。

最佳答案

您正在尝试访问超出范围的 $questionID 变量。尝试将其传递给函数,例如:

// Dropdown Menu
function dropdownmenu ( $questionID ) {
  echo '<select id="quizselectanswer" name="quizselectanswer" title="quizselectanswer">';

  $sql="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
  $result2 =mysql_query($sql);

  while ( $data = mysql_fetch_array( $result2 ) ) {
    echo '<option value ="' . $data['quizanswer1'] . '" >' . $data['quizanswer1'] . '</option>';
    echo '<option value ="' . $data['quizanswer2'] . '" >' . $data['quizanswer2'] . '</option>';
    echo '<option value ="' . $data['quizanswer3'] . '" >' . $data['quizanswer3'] . '</option>';
    echo '<option value ="' . $data['quizanswer4'] . '" >' . $data['quizanswer4'] . '</option>';
  }

  echo '</select>';
}

然后像这样从第一个循环调用函数:

dropdownmenu($questionID)

关于php - 函数内部的数据库查询未发布到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648177/

相关文章:

php - 更新 mySQL 查询无效

python - Python和PyQt:从另一个类运行函数

c - 警告 : return makes pointer from integer without a cast but returns integer as desired

php - 使用 ajax 创建的字段保存表中的更改

php - Auto_increment 阻止脚本创建表

PHP,从 MySQL 填充的下拉列表中获取 MySQL 查询

php - 使用 preg_match 捕获标签之间的文本,但 PHP 存在异常

mysql - 将新表添加到 moodle 数据库

c - 如何将结构体指针传递给函数?

php - 如何使用 PHP 验证我的 'third party server' 上的 GKLocalPlayer?