1

こんにちは私はmysqlの特定のテーブルから列のリストを取得し、列に基づいてフォームを生成しようとしていますが、エラーが発生し続け、ページが空白になります。

mysql_select_db($DB_Name) or die(mysql_error());
$query=mysql_query("SHOW COLUMNS FROM mytable") or die (mysql_error());
$j=0;

while($row=mysql_fetch_assoc($query)){
    if(substr($row,0,2)=="S_"){
        echo substr($row,2);?>:<input type="text" name="<?php echo $row;?>" maxlength="<?php echo getlength($j, "mytable");?>" /><?php ?><!--textbox code here --><?php
    }
    $j++;
}

getlength();length of a fieldは、列のを簡単に取得できるようにするために作成したメソッドです。正確に動作します。

ありがとう

私は言及しなかったと思います。サイトは動的であるため、列の名前は不明です。これのポイントは、特定のテーブルから列名のリストを取得し、それを整然と表示することです。

4

4 に答える 4

2

mysql_fetch_assocは連想配列を返します。この場合、次のような配列を取得している可能性があります。

[FIELD] => "Name of the field",
 [Type] => "varchar(32)",
 [Null] => YES,
 [Key] => PRI,
 [Default] => '',
 [Extra] => ''

したがって、S_のフィールド名を確認する場合は、substr行を次のように変更する必要があります。

substr($row['FIELD'], 0, 2)
于 2012-09-10T05:17:28.190 に答える
2

を呼び出すと、現在、配列であるsubstr()を渡しています。次のような特定の要素を返すに$rowは、でインデックスを指定する必要があります。$row

 $row['name']
于 2012-09-10T05:01:54.053 に答える
1

トレースする列を特定する必要があります。以下に正しいスクリプトを示します。

<?php
    if(substr($row['some_column'],0,2)=="S_"){
        echo substr($row['some_column'],2);

    }
?>

これがお役に立てば幸いです。

于 2012-09-10T05:30:07.027 に答える
0

交換

if(substr($row,0,2)=="S_"){
    echo substr($row,2);?>

 if(substr($row['FIELD'],0,2)=="S_"){
    echo substr($row['FIELD'],2);?>
于 2012-09-10T05:19:25.367 に答える