PHP如何将数据库表中的某列数据一个一个循环取出并打印

PHP如何将数据库表中的某列数据一个一个循环取出并打印,第1张

一般我们为了减少数据库链接,取数据是一次取出所有想要的数据然后做循环处理,而不是一个个循环取出

$servername = "localhost"

$username = "root"

$password = "root"

$dbname = "aaaa"

 

// 创建连接

$conn = new mysqli($servername, $username, $password, $dbname)

// Check connection

if ($conn->connect_error) {

    die("连接失败: " . $conn->connect_error)

$conn->query('set names utf8')

$sql = "SELECT name FROM xiao "//这里是查询xiao表的name列的所有数据

$result = $conn->query($sql)

 

if ($result->num_rows > 0) {

    // 输出数据

    while($row = $result->fetch_assoc()) {

//print_r($row)

        echo "name: " . $row["name"]."<br>"//这里是循环打印

    }

} else {

    echo "没有查询到数据"

}

$conn->close()

结果已经有了,我就说下这句话的区别\x0d\x0a\x0d\x0amysql_select_db,字面上就能理解,选择数据库\x0d\x0a\x0d\x0a去PHP手册中可以发现该函数的返回值是bool,也就是布尔值\x0d\x0abool mysql_select_db ( string $database_name [, resource $ link_identifier ] )\x0d\x0a\x0d\x0a只是确定 *** 作是否成功\x0d\x0a\x0d\x0a$result = mysql_query($sql, $link)// 执行查询语句\x0d\x0a\x0d\x0a是执行查询语句,这时返回的是\x0d\x0aresource mysql_query ( string $query [, resource $link_identifier ] )\x0d\x0a\x0d\x0a资源符号,通过var_dump($result)可以看到该变量的类型,不是数组\x0d\x0a\x0d\x0a随后通过mysql_fetch_array($result)获取实际查询语句所能获取的数据\x0d\x0a每次 *** 作,返回一行数据\x0d\x0a该 *** 作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行\x0d\x0a概念和foreach一致\x0d\x0a\x0d\x0a所以通过\x0d\x0awhile ($bookInfo = mysql_fetch_array($result)){\x0d\x0a\x0d\x0a}\x0d\x0a可以获取所有的行数据\x0d\x0a如果没有数据会返回false,所以while会自动停止循环

// 这是因为你从资源型结果集中获取数据时只获取了一次, 如果查询为多条数据应该迭代资源型结果集

$r = mysql_query($sql)  // 你的结果集

$result = []

while (true) {

    $ary = mysql_fetch_assoc($r)  // 取出第一条数据, 数据指针向后移动一位

    if ($ary) {

        $result[] = $ary   // 存储到结果数组中

    } else {

        break  // 如果取出的结果为false, 则代表数据获取完毕, 终止循环

    }

}

echo '<pre>'

print_r($result)   // 打印最终结果

echo '</pre>'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6761273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存