1

特定のフィールドを見つけるために、MySQL データベースのヘッダーの配列を取得できるようにする PHP 関数を作成しようとしています。

function table($tablename,$id) {
  $post = mysql_query("SELECT * FROM $tablename WHERE ID = '$id'");
}

次に、問題の行の効果的なミニチュア クエリとしてテーブル ヘッダーを出力するにはどうすればよいでしょうか。

例えば。$post->title, $post->timestamp, $post->field4

4

4 に答える 4

3

MySQLでフィールド名を取得する単純な PHP スクリプト:

<?php 
    $sql = "SELECT * FROM table_name;"; 
    $result = mysql_query($sql); 
    $i = 0; 
    while($i<mysql_num_fields($result)) 
    { 
      $meta=mysql_fetch_field($result,$i); 
      echo $i.".".$meta->name."<br />"; 
      $i++; 
    } 
?> 

出力:

0.id 
1.todo 
2.due date 
3.priority 
4.type 
5.status 
6.notes 

お役に立てれば!php.netのドキュメントから取得。

于 2012-06-18T14:05:15.513 に答える
3

You need MySQLi or PDO_MySQL, but in your case:

while ($row = mysql_fetch_assoc($post)) {
    echo $row['title'];
}

Documentation

Remember that the use of mysql_* function is discouraged.

于 2012-06-18T14:01:39.513 に答える
2

これを実行すると、列名だけを取得できます。

DESCRIBE `MyTable`;

フィールド、タイプ、キーなどを含む結果セットを返します。

$query = mysql_query("DESCRIBE `MyTable`");
while($result = mysql_fetch_assoc($query)) {
    echo $result['Field'] . "\n";
}
于 2012-06-18T14:10:57.890 に答える
2

どうmysql_fetch_assoc($post)ですか?

すべてのフィールド名を個別の配列に取得するには:

$post = mysql_fetch_assoc($post);
$fields = array();

foreach($post as $title => $value){
    $fields[] = $title;
}

これを while ループで使用して、すべての行を調べて、ri フィールド値 (およびその名前) を取得できます。

while($p = mysql_fetch_assoc($post)){

    $title = $p['title'];
    $timestamp = $p['timestamp'];

    //And so on...
}

編集: そして Pierpaolo は正しいです。古いものは PHP 5.5/5.6 またはそれ以降で削除されるため、別の mysql 実装を使用する必要があります...

于 2012-06-18T14:04:23.390 に答える