PHP MYSQL $row[$variable]


PHP MYSQL $row[$variable]

我正在尝试处理动态表创建和数据获取。我正在尝试使用以下代码获取数据:

    $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];
                    }
                }

您获取的是一个数组,而不是assoc数组。使用此:

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

编辑:再看一点,这可能是不对的。您可以设置fetch_array以返回assoc数组。

不能通过单引号的解析变量

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

echo $row[$col_name];

echo $row["$col_name"];

你试过了->

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所说的那样,它不是一个关联数组

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

while($row = mysql_fetch_array($result)) {
echo $row['col_name'];
echo "<br />";
}

我建议使用以下解决方案。给出参数$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'];