2012-08-01 90 views
1

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

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

        } 
       } 
+1

在前两行之间可以执行'echo $ myQuery;'并将响应放在这里? 也可能是'var_dump($ row);' – 2012-08-01 03:55:11

回答

5

你取一个数组,不是assoc array。使用这个:

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

编辑:看了一会儿,这可能不正确。你可以设置fetch_array来返回assoc数组。

您无法通过单引号'

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

echo $row[$col_name]; 

echo $row["$col_name"]; 
+0

的结果感谢这工作得很好。最后一个选项正确。非常感谢 ! – Chinmay 2012-08-01 04:13:22

0

您是否尝试过通过结果阵列循环这样:

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

解析变量你试过但─>

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

OR

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

原因喜欢说@Fluffeh它不是一个关联数组

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'];