Php 无法打印列名

Php 无法打印列名,php,Php,我正在尝试打印表中的列名。我正在构建一个程序,在这个程序中,我希望通过单击表的任何列名,按升序和降序排列数据。我在下面的代码部分遇到了IDE抛出的错误 错误消息:“尝试获取非对象的属性” $data=mysqli_query($con,“按$id$sort从'address'顺序选择*); $col=mysqli\u num\u字段($data); 回声“; 首先,对于($i=0;$i),在这个查询中使用$id和$sort是什么意思 $data=mysqli_query($con,"select

我正在尝试打印表中的列名。我正在构建一个程序,在这个程序中,我希望通过单击表的任何列名,按升序和降序排列数据。我在下面的代码部分遇到了IDE抛出的错误

错误消息:“尝试获取非对象的属性”

$data=mysqli_query($con,“按$id$sort从'address'顺序选择*);
$col=mysqli\u num\u字段($data);
回声“;

首先,对于($i=0;$i),在这个查询中使用$id和$sort是什么意思

$data=mysqli_query($con,"select * from `address` order by $id $sort");
试试这个(我没有使用$sort变量)

$data=mysqli_query($con,“按id从地址顺序中选择*);
而($col=mysqli\u fetch\u object($data)){
回声“;
回声“;
回声“;
}

首先,您的查询中有一个MySQL语法错误,为了按两列排序,您需要在注释中提到的@GarbageCollector之间有一个逗号,因此您的查询变成:

$data=mysqli_query($con,"select * from `address` order by $id,$sort");
此外,您需要将
$field=mysqli_fetch_fields($data);
放在for循环之外,因为您不需要为每一列请求它,所以在每次迭代中都是相同的,而且,不需要
mysqli_num_fields($data)
您可以进行代码优化,因此您的代码变成:

$data=mysqli_query($con,"select * from `address` order by $id $sort");
$col=mysqli_num_fields($data);
echo "<tr>";
$field=mysqli_fetch_fields($data);
foreach ($field as $val) {
echo "<th><a href=\"class.php?fn=$val->name &ord=$sort\">$val->name</a></th>";
}
echo "</tr>";
$data=mysqli_query($con,“按$id$sort从'address'顺序选择*);
$col=mysqli\u num\u字段($data);
回声“;
$field=mysqli\u fetch\u字段($data);
foreach($val形式的字段){
回声“;
}
回声“;

我想您需要在文件中的$id后面加一个逗号query@GarbageCollector不起作用,我认为select语句没有问题。@Tony抛出一条错误消息,“警告:mysqli_num_fields()期望参数1是mysqli_result,给定布尔值”。@Tony使用我使用的当前语句,var_dump($field)确实返回了大量数据。请正确阅读问题。我给出的只是有问题的代码片段。程序还有很多内容。谢谢,代码可以工作,但查询在$id和$sort之间没有逗号。我不能给你投票,因为我缺少信誉点,但我已经标记了你的答案。没关系@Don't顺便说一句,如果我们检查一下,我们会发现使用多个列进行排序的正确语法是用逗号分隔它们。然而,当MySQL优化器遗漏它们时,可能会假设相同。你是对的,再次感谢你!
$data=mysqli_query($con,"select * from `address` order by $id,$sort");
$data=mysqli_query($con,"select * from `address` order by $id $sort");
$col=mysqli_num_fields($data);
echo "<tr>";
$field=mysqli_fetch_fields($data);
foreach ($field as $val) {
echo "<th><a href=\"class.php?fn=$val->name &ord=$sort\">$val->name</a></th>";
}
echo "</tr>";