我知道在PHP页面中显示MySql中表的值。这就是我的工作:
$sql = "SELECT * FROM table";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result,MYSQL_NUM))
{
//print the values using echo
}
问题是我使用的表中有35列,而且我有4个这样的表。有没有比回声每列更简单的方法。我还要打印表头。在谷歌尝试了一些链接,没有得到满意的答案。直接回答或链接将有所帮助。提前致谢。
答案 0 :(得分:0)
如果您想查询查询中表的列名,可以执行以下操作:
$c=0;
$myarray = array();
while ($c < mysql_num_fields($result))
{
# Get field name
$fld = mysql_fetch_field($result, $c);
# Put field name in array
$myarray[] = $fld->name;
# Count + 1 for next field
$c++;
}
echo "<table style='border:1px solid #ccc;'>\n";
echo "<thead>\n";
echo "<tr>\n";
foreach($myarray as $columnheading) {
echo "<th>".$columnheading."</th>\n";
}
echo "</tr>\n";
echo "</thead>\n";
echo "<tbody>\n";
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>\n";
foreach($row as $td) {
echo "<td>".$td."</td>";
}
echo "</tr>\n";
}
}
echo "</tbody>\n";
echo "</table>";
您在列中包含列名称。添加print_r($ myarray)以查看生成的列。
编辑:添加完整示例。
答案 1 :(得分:0)
根据PHP文档here
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
}
答案 2 :(得分:-1)
您需要的技巧是检索结果集的元数据。我拒绝帮助您对已弃用且危险的mysql_
界面做任何事情,所以我的回答与mysqli_
有关。
这是文档。
http://php.net/manual/en/mysqli.quickstart.statements.php
以下是您可以使用的一些代码:
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
die "Failed to connect to MySQL: (" .
$mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$res = $mysqli->query("SELECT * FROM table");
if (!$res) {
die "Query failed: (" . $res->errno . ") " . $res->error;
}
$rownumber = 0;
echo "<table>\n";
while ($row = $res->fetch_assoc()( {
if (0 == $rownumber) {
/* first result set row? look at the keys=column nanes */
echo "<tr>";
foreach (array_keys($row) as $colname) {
echo "<td>$colname</td>"
}
echo "</tr>\n";
}
$rownumber ++;
echo "<tr>";
foreach (array_values($row) as $colval) {
echo "<td>$colval</td>"
}
echo "</tr>\n";
}
echo "</table>\n";
$res->close();
至于减少你称之为“回声”的次数,没有特别好的理由这样做。但是如果你必须你可以做这样的事情来积累输出字符串。
$out = "";
$out .= "<tr>";
foreach (array_values($row) as $colval) {
$out .= "<td>$colval</td>"
}
$out .= "</tr>\n";
echo $out;
$out = "";