2012-08-01 55 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'];