我在下面有这个查询,从数据库返回一个查询并显示表中的所有信息,然后用户输入查询。
有没有办法让字段名称填充在表格的顶部?否则第一行是原始数据。我正在努力寻找一种方法来做到这一点,所以任何帮助都会受到赞赏。
<?php
if ($safeparam1 === null) {
}
else {
$stid = oci_parse($conn, $safeparam1);
$r = oci_execute($stid);
print '<p><input type="button" value="Clear Results"
onclick=location.href=\'ul_move_query.php\';> <input type="submit"
value="Print Results">';
print '<table>';
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) {
print '<tr>';
foreach ($row as $item) {
print '<td>'.($item !== null ? htmlentities($item, ENT_QUOTES) :
'').'</td>';
}
print '</tr>';
}
}
?>
答案 0 :(得分:1)
在获取关联数组时,您只需输出数组键作为标题行:
$header = false; // a way to track if we've output the header.
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) {
if ($header == false) {
// this is the first iteration of the while loop so output the header.
print '<thead><tr>';
foreach (array_keys($row) as $key) {
print '<th>'.($key !== null ? htmlentities($key, ENT_QUOTES) :
'').'</th>';
}
print '</tr></thead>';
$header = true; // make sure we don't output the header again.
}
// output all the data rows.
print '<tr>';
foreach ($row as $item) {
print '<td>'.($item !== null ? htmlentities($item, ENT_QUOTES) :
'').'</td>';
}
print '</tr>';
}
答案 1 :(得分:0)
您可以查询Adview
表以获取Oracle中特定表的所有列。
ALL_TAB_COLUMNS
答案 2 :(得分:0)
OCI8包含oci_num_fields()
和oci_field_name()
等元数据调用。它们可以像:
$s = oci_parse($c, "select * from employees");
if (!$s) {
$m = oci_error($c);
trigger_error('Could not parse statement: '. $m['message'], E_USER_ERROR);
}
$r = oci_execute($s);
if (!$r) {
$m = oci_error($s);
trigger_error('Could not execute statement: '. $m['message'], E_USER_ERROR);
}
echo "<table border='1'>\n";
$ncols = oci_num_fields($s);
echo "<tr>\n";
for ($i = 1; $i <= $ncols; ++$i) {
$colname = oci_field_name($s, $i);
echo " <th><b>".htmlspecialchars($colname,ENT_QUOTES|ENT_SUBSTITUTE)."</b></th>\n";
}
echo "</tr>\n";
while (($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo "<td>";
echo $item!==null?htmlspecialchars($item, ENT_QUOTES|ENT_SUBSTITUTE):" ";
echo "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";