3

「author」という名前のデータベーステーブルがあり、誰かがサインアップしてからそのプロファイルにアクセスすると、次のような結果が表示されます。

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

foreachでは、次のフォームを使用する必要があります。

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

foreachがない=>場合は値のみを取得し、それを使用するとキーと値を取得します。

phpforeachのドキュメントを参照してください

于 2013-01-11T16:17:28.697 に答える
0

次のようなURLを取得します。

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

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 に答える