MySQL查询获取第一列数据& MySQL查询获取重复数据

时间:2017-03-22 23:54:32

标签: php mysql

所以我的问题是我尝试从first_name表中获取所有students,但是当我mysqli_fetch_array并使用print_r()输出结果时1,它只输出表格中的第一个first_name

学生表

students_id | first_name | last_name | teacher_id
1           | abc        | efg       | 10
2           | 123        | xyz       | 10

因此输出为Array ( [0] => wda [first_name] => wda )。但我希望它输出first_name

此外,我还要复制相同的数据。

实施例

Array ( [0] => abc [first_name] => abc )

数组存储了abc两次,那么我怎么能得不到数据的副本呢?

PHP代码

<!DOCTYPE html>
<html>
<head>
    <title>Name Tags</title>
</head>
<body>
    <?php 

        require '../../connect.php';

        $results = mysqli_query($link, "SELECT first_name FROM students");

        if($results) {
            $results_arr = mysqli_fetch_array($results);

            print_r($results_arr);

            if(is_array($results_arr)) {
                foreach ($results_arr as $fname) {
                    echo "

                        <h1>$fname</h1>

                    ";
                }
            } else {
                echo '<h1>Empty</h1>';
            }
        } else {
            echo 'Sorry, we ran into an error, please try again later.';
        }

     ?>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

mysqli_fetch_array()(以及其他mysqli_fetch_XXX()函数)只返回结果的一行。你必须在一个循环中调用它来获取所有行。您不需要遍历此数组,只需访问所需的列。

while ($row = mysqli_fetch_assoc($results)) {
    $fname = $row['first_name'];
    echo "<h1>$fname</h1>";
}

答案 1 :(得分:0)

Mysqli_fetch_array()只检索单行输出:

while($r=mysqli_fetch_array($result)) {
  print $r[0] . "<br />";
}