3

我正在尝试解决动态表创建和数据获取问题。我正在尝试使用以下代码获取数据:

    $myQuery = "SELECT ".$col_name." FROM ".$tabname." WHERE sampleid='".$sid."'";
    $result = mysql_query($myQuery);
    $row = mysql_fetch_array($result);
    echo "<br>".$row['$col_name'];

但是,我无法取回任何数据。我检查了打印查询并在我的管理员的 php 中运行它,它可以按我的意愿工作。但我猜我猜数组中的变量可能不起作用。请帮助我解决同样的问题。谢谢。

整个循环看起来像这样:

$myQuery = "SELECT * FROM information_schema.columns WHERE table_name = '$tabname'";
$re = mysql_query($myQuery);

while($row = mysql_fetch_array ($re)){
         if(!empty ($row)){
                    $col_name = $row['COLUMN_NAME'];

          $myQuery = "SELECT ".$col_name." FROM ".$tabname." WHERE sampleid='".$sid."'";
                    echo "<br>".$myQuery;
                    $reqq = mysql_query($myQuery);
                    $roww = mysql_fetch_array($reqq);
                    echo "<br>".$roww[$col_name];

                    }
                }
4

4 回答 4

7

您正在获取一个数组,而不是一个关联数组。用这个:

echo "<br>".$row[0];

编辑:看了多一点,这可能不正确。您可以设置 fetch_array 以返回关联数组。

您不能通过单引号解析变量 '

echo $row['col_name'];  // manually typed string.

或者

echo $row[$col_name];

或者

echo $row["$col_name"];
于 2012-08-01T03:55:08.487 回答
3

你试过了->

echo "<br>".$row[$col_name];

或者

    $myQuery = "SELECT ".$col_name." FROM ".$tabname." WHERE sampleid='".$sid."'";
    $result = mysql_query($myQuery);
    $row = mysql_fetch_assoc($result);
    echo "<br>".$row[$col_name];

因为就像@Fluffeh 所说的那样,它不是关联数组

于 2012-08-01T03:55:56.313 回答
0

您是否尝试过像这样循环遍历结果数组:

while($row = mysql_fetch_array($result)) {
echo $row['col_name'];
echo "<br />";
}
于 2012-08-01T03:54:45.377 回答
0

我会建议以下解决方案。给出参数$col_nameAS Col_Name 然后 $row['Col_Name'] 总是可以设置为参数,无论值是什么。

$myQuery = "SELECT ".$col_name." AS Col_Name FROM ".$tabname." WHERE sampleid='".$sid."'"; 
    $result = mysql_query($myQuery); 
    $row = mysql_fetch_array($result); 
    echo "<br>".$row['Col_Name']; 
于 2012-08-01T03:59:14.460 回答