3

我有一个名为“作者”的数据库表,当有人注册然后访问他的个人资料时,我想显示类似的结果

Name : user name here
Email : email here
location : location here

位置、电子邮件和名称是数据库列名称。我可以检索数据库值,但无法检索数据库列名。我怎样才能做到这一点?

更新:这是我的代码

$query = "SELECT * 
                      FROM author 
                      WHERE id = {$author_id};
 $author_info = mysql_query($query, $connection);
$author_details  =  mysql_fetch_assoc($author_info);
foreach ($author_details as $fieldname) {
echo $fieldname;
}

从这段代码中,我只得到名称、位置、电子邮件的值,但我还需要打印名称、电子邮件、位置等列名及其列值。

4

5 回答 5

2

试试这个查询,

SHOW columns FROM your-table-name;
于 2013-01-11T15:51:13.157 回答
0

mysql_field_name($index)

好的,假设您已经运行查询以获取数据。这就是您可以根据需要使用这些数据创建表的方法。或者只是mysql_field_name($index)随心所欲地使用。通过这个例子,你会明白的。

$numFields = mysql_num_fields($result); 

echo "<table id='whatever you want here'>";
        echo "<tr>";
            for($i = 0; $i < $numFields; $i++)
            {
                echo "<th>";
                    echo mysql_field_name($result,$i);
                echo "</th>";
            }
        echo "</tr>";

        while($row = mysql_fetch_row($result))
        {
            echo "<tr>";
                for($i = 0; $i < $numFields; $i++)
                {
                    echo "<td>$row[$i]</td>";
                }
            echo "</tr>";
        }
echo "</table>";
于 2013-01-11T16:05:00.197 回答
0

采取这样的网址:

www.site.com/profile.php?id=1

您的 profile.php 看起来像这样:

$q = mysql_query("SELECT location, email, name FROM db WHERE id = " . $_GET['id']); 

while($r = mysql_fetch_array($q)){
    echo $r['location'] . $r['name'] . $r['email'];
}

只是一个指导方针。您对 sql 注入持开放态度,您应该考虑使用 PDO。

于 2013-01-11T15:54:29.823 回答
0

听起来您已经知道您希望这些列名称是什么,并且您希望它们是样板文本,而不是从数据库的元数据中动态选择。在这种情况下,请尝试将样板文本连接到您的数据上,然后为结果列提供一个列别名(为了方便在例如 PHP 代码中检索它)。

例如:

SELECT CONCAT("Name: ",name) AS name, CONCAT("Location :",location) AS location,
CONCAT("Email: ",email) FROM author WHERE id = 1;

然而,这似乎是一个不寻常的事情,希望数据库做 - 通常例如。如果编写基于 PHP 的应用程序,您会将样板文本作为 HTML 样板文本放在 PHP 页面中。

于 2013-01-11T16:03:10.740 回答
0

在您的 foreach 中,您需要使用此表单:

foreach ($author_details as $fieldname=>$fieldvalue) {...}

没有=>in the foreach 你只能得到值,用它你会得到键和值。

请参阅 php foreach 文档

于 2013-01-11T16:17:28.697 回答