我正在尝试处理动态表创建和数据获取。我正在尝试使用以下代码获取数据:
$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_name
和AS 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'];