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 回答