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

assoc arrayではなく、配列をフェッチしています。これを使って:

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 に答える