资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php打印数据表 php输出数据库表

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

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

成都创新互联服务项目包括正阳网站建设、正阳网站制作、正阳网页制作以及正阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,正阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到正阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

$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();

php 怎么实现打印 功能啊 直接打印html中的table 而且为word格式 table里的内容是通过数据库获取出来的

你的打印是不是编程语言里面说的打印,例如basic语言的print语句,如果是的话,在PHP里面使用echo语句打印内容,例如:

echo 'table border=1trtd1td2/table';

如果你是希望程序运行后在打印机上打印输出内容,那可能比较复杂,而且不是PHP的强项,需要编写许多查找打印机的代码,简单的做法是把数据送我特殊设备,可以使用file_put_contents函数,例如:

file_put_contents('PRN:', 'print test');

dump方法打印表格

在多人合作项目中偶尔会遇到这样的情况:

现在在调试程序,从其他小伙伴提供的方法中取到的table类型数据报错了,此时我们想检查一下数据格式。但是直接print又无法打印出来这个table的结构,真机测试时又不太方便在Lua中打断点,用for循环来输出又不能展开所有子table(有个dump工具该多好)。

所以,如果想解决上面的问题,将整个table类型数据的结构输出到控制台,那就使用循环+递归的方式来输出数据吧。

下面直接贴上代码以及测试用例:

感谢老司机Reyn在评论中提出的建议

--[[

print_dump是一个用于调试输出数据的函数,能够打印出nil,boolean,number,string,table类型的数据,以及table类型值的元表

参数data表示要输出的数据

参数showMetatable表示是否要输出元表

参数lastCount用于格式控制,用户请勿使用该变量

]]

function print_dump(data, showMetatable, lastCount)

if type(data) ~= "table" then

--Value

if type(data) == "string" then

io.write("\"", data, "\"")

else

io.write(tostring(data))

end

else

--Format

local count = lastCount or 0

count = count + 1

io.write("{\n")

--Metatable

if showMetatable then

for i = 1,count do io.write("\t") end

local mt = getmetatable(data)

io.write("\"__metatable\" = ")

print_dump(mt, showMetatable, count) -- 如果不想看到元表的元表,可将showMetatable处填nil

io.write(",\n") --如果不想在元表后加逗号,可以删除这里的逗号

end

--Key

for key,value in pairs(data) do

for i = 1,count do io.write("\t") end

if type(key) == "string" then

io.write("\"", key, "\" = ")

elseif type(key) == "number" then

io.write("[", key, "] = ")

else

io.write(tostring(key))

end

print_dump(value, showMetatable, count) -- 如果不想看到子table的元表,可将showMetatable处填nil

io.write(",\n") --如果不想在table的每一个item后加逗号,可以删除这里的逗号

end

--Format

for i = 1,lastCount or 0 do io.write("\t") end

io.write("}")

end

--Format

if not lastCount then

io.write("\n")

end

end

下面分别输出了nil,boolean,number,string,table类型的数据,测试代码如下:

print("---------------Test---------------")

local myData = nil

print_dump(myData)

print("-------------------")

myData = true

print_dump(myData)

print("-------------------")

myData = 10086

print_dump(myData)

print("-------------------")

myData = "your name"

print_dump(myData)

print("-------------------")

myData = {

null = nil,

bool = true,

num = 20,

str = "abc",

subTab = {"111", "222"},

func = print_dump,

sunTab = {"sun_a", {"sun_1", "sun_2"}, {you = "god", i = "man"}}

}

local mt = {}

mt.__add = function(op1, op2) return 1000 end

mt.__index = {1,2}

setmetatable(myData, mt)

print_dump(myData, 1) -- 第二个参数不为空则打印元表

print("---------------End---------------")

dump输出的结果是这样的(因为内容太长,屏幕高度不够,所以分成了两张图):

上半部分输出.jpeg

下半部分输出.jpeg

如果不是有特殊需求,建议按照注释的提示,屏蔽子级table类型值的元表。屏蔽子级table类型值的元表之后输出看起来清爽很多。

屏蔽子级table的元表后的输出.jpeg

总结:

其实解决问题不难,需求是成长的直接动力。

其实为了dump输出图上的效果,我还是花了一些时间去做微调。最初末尾是没有换行的,也就是End那一行会紧接着上一行输出,虽然table的结构可以正常看到,但是如果dump的不是一个table,那就看着很奇怪了。时间总是花在细节上。


网页标题:php打印数据表 php输出数据库表
分享URL:http://cdkjz.cn/article/dojcdij.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220