分辨 我使用了alfasin的答案,但由于这给了我太多的信息,我写了一个小脚本来获取字段名称。首先是字段名称,它很简单:
$here = array();
$SQL = "SHOW COLUMNS FROM User";
foreach($conn->query($SQL) as $row) {
$here[] = $row[0];
}
echo '<pre>';print_r($here);echo '<pre>';
这给我留下了包含列名的新数组$here
,希望这可以帮助将来的某个人:)
原始问题:
让我澄清一点,我有一个mysql表,我试图从中选择*,并在html列表<ol>
中显示结果。我可以设法获取行数据JUST FINE,但我不能为我的生活弄清楚如何获取表列名,以便分别与行匹配。这是我抓取行数据的代码:
//get those results
$sql = "SELECT DISTINCT *
FROM User
WHERE Owner = '".$owner."'";
foreach($conn->query($sql) as $row) {
//split array in half
$hax = count($row);
$halfHax = $hax / 2;
//set up a for loop to give results
$u = 1;
for($i = 2; $i <= $halfHax; $i++){
echo $row[$u].'<br>';
$u++;
}
}
这给了我Owner == $owner
就像它应该的那样的所有结果,但我希望列名列出那些,我可以硬编码,但可以添加/更改更多列我宁愿不。有什么想法吗?
答案 0 :(得分:3)
答案 1 :(得分:3)
将行作为关联数组获取,以便将列名保存为数组键。 这是我的建议:
$sql = "SELECT DISTINCT * FROM User WHERE Owner = :owner";
$sth = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':owner' => $owner);
while($row=$sth->fetch(PDO::fetch_assoc) as $row) {
//split array in half
$hax = count($row);
$halfHax = $hax / 2;
//set up a for loop to give results
foreach ($row as $key => $value) {
echo $key.'='.$value.'<br />';
}
}
只列出列名:
array_keys($row);
答案 2 :(得分:2)
如果您想了解有关这些列的更多信息,请参阅MySQL Reference上的显示列。
但我建议使用mysqli_fetch_assoc,然后使用foreach (array_expression as $key => $value)获取每一行的列名及其值。