【问题标题】:Inserting data from query into an array将查询中的数据插入数组
【发布时间】:2015-02-16 00:19:07
【问题描述】:

我有一个表格,屏幕上有单独的文本框,我想在其中插入一个学生姓名。每个文本框将包含一个学生姓名。我有一个 SQL 查询,它可以获取我想要创建此表单的班级的所有学生。当 SQL 在 PHPMyAdmin 中运行时,查询返回我想要的确切值。

我希望下面的代码能够从数据库中获取数据并将其放入一个数组中,以便以后可以将每一行放入一个文本框中。 但是,当我运行此代码时,完成的数组仅包含 1 个元素,并且是查询找到的第二行。 通过查询找到的记录是;

+--------------------------+
| Pupil_Name (Column name) |
+--------------------------+
| Sam Price                |
| Keith mcgareth           |
+--------------------------+

只有 Keith mcrgareth 在结尾处回响。何时应回显两条记录。

$pupilarray = array();
$pupilquery = mysqli_query($connection, "SELECT Pupil_Name FROM tbllogin WHERE Class_Name = 'Heulog'         AND Access_Level = 'pupil'");
while($row = mysqli_fetch_assoc($pupilquery)){
$pupilarray = $row['Pupil_Name'];
}
echo $pupilarray;

我创建的数组是否错误?还是我错过了什么?

【问题讨论】:

    标签: php mysql arrays mysqli


    【解决方案1】:

    由于您将 echo 放在循环之后,因此您只会得到最后一个值。如果您希望在循环进行时打印回声,请将其放入:

    while($row = mysqli_fetch_assoc($pupilquery)){
        $pupilarray = $row['Pupil_Name'];
        echo $pupilarray . '<br/>';
    }
    

    但是,如果您的意图是创建一个数组,那么您应该在赋值时使用数组表示法推送它:

    $pupilarray = array(); // initialize an array named `pupilarray`
    while($row = mysqli_fetch_assoc($pupilquery)){
        $pupilarray[] = $row['Pupil_Name'];
               //  ^ push the value inside
    }
    

    旁注:如果您的想法可以直接回显数组 (echo $pupilarray)。不,你不能那样做。使用print_r()var_dump() 查看其内容。

    【讨论】:

      【解决方案2】:

      你覆盖了$pupilarray 变量,你没有向数组中添加任何东西。可以通过$pupilarray[] = ...向数组添加一些东西

      【讨论】:

        【解决方案3】:

        在你的代码中你得到最后一个值,然后改变它

        mysqli_fetch_assoc (mysqli_result $result)。返回对应于获取的行的关联数组

        while($row = mysqli_fetch_assoc($pupilquery)){
        $pupilarray[] = $row['Pupil_Name']; // value of Pupil_Name column put in array
        $pupilarrayFull[] = $row; // Put each $row array in pupilarrayFull[] 
        }
        
        print_r($pupilarray) // your array is here of Pupil_Name column
        
        print_r($pupilarrayFull) // your array is here of All column
        

        【讨论】:

          【解决方案4】:

          试试这个..

          $pupilarray = array();
          $pupilquery = mysqli_query($connection, "SELECT Pupil_Name FROM tbllogin WHERE Class_Name = 'Heulog'         AND Access_Level = 'pupil'");
          while($row = mysqli_fetch_assoc($pupilquery)){
          $pupilarray[] = $row['Pupil_Name'];
          }
          print_r($pupilarray);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-03
            • 1970-01-01
            • 1970-01-01
            • 2016-07-01
            • 2022-06-13
            • 2020-10-25
            • 2020-07-05
            • 1970-01-01
            相关资源
            最近更新 更多