0

私はこれのためにあらゆる場所を探したようです。

これは、変数をMySQLデータベースのデータに設定するために使用するコードです

$PartNo=mysql_result($result,$i,"PartNo");

どこ

 $result = mysql_query("SELECT * FROM PriceList"); 

$i = 0、while ループが再開するたびに 1 ずつ追加されます
。PartNo は MySQL テーブルのフィールド名であり、データベースのデータを
PriceList に設定する変数の名前もデータベース名です。

すべてのフィールド名 (配列にはそれらがあります) をループし、同じ名前の変数をそのデータに設定したいと考えています。このような:

$PartNo=mysql_result($result,$i,"PartNo");
$Group=mysql_result($result,$i,"Group");
$OnHand=mysql_result($result,$i,"OnHand");
$QOO=mysql_result($result,$i,"QOO");
$Description=mysql_result($result,$i,"Desc");
$Cost=mysql_result($result,$i,"Cost");

ただし、foreach ループがあるため、それほど多くのコードではありません。
こんなことを考えていたのですが、どうやっても実行されません(parse_str、eval、execなど)。

$nDatabaseVars=array("PartNo","Group","OnHand","QOO","Desc","Cost");

foreach ($nDatabaseVars as $X) {
    $$X=mysql_result($result,$i,'$X');
}

評価するには " " が必要な$$Xので、最初の反復で $PartNo= に変更さ$PartNoれ、最初の行でデータベースにあるデータに設定されます。この部分は次のとおりです。mysql_result($result,$i,"PartNo")

代わりにエコーアウトすると:

foreach ($nDatabaseVars as $X) {
    echo "$$X=mysql_result($result,$i,'$X')";
}

実行する必要があるものを正確に言うことができます ($PartNo=mysql_result($result,$i,"PartNo");) が、実際に変数セットを取得することはできません。

4

2 に答える 2

2

列の名前ではなく、"$X"toを含む文字列を渡しています。mysql_result一重引用符を削除します。

$$X=mysql_result($result, $i, $X);
于 2012-05-07T14:26:12.190 に答える
0
$$X=mysql_result($result,$i,'$X'); // these single quotes around $X avoid your actual string to be used.

$$X=mysql_result($result,$i,"$X");
于 2012-05-07T14:27:20.450 に答える