0

これが私のコードです:

$inv = array('field1','field2','field3','field4');
$sql = "select * from table1 where id='1'";
$result = mysql_query($sql);
if(!$result){
    print mysql_error();    
}else{
    while($row = mysql_fetch_array($result)){
        foreach($inv as $i){
            print $row[$i];
        }
    }
}

table1は、次のフィールド名で構成されます。field1、field2、field3、field4、field5、field6、field7
$ inv = explode('、'、$ item)ここで、$ item = table2 $ row [value]は、コンマで区切られた文字列を返します。 'field1、field2、field5'または'field3、field4、field6'...などで構成されます。

どうしてfield1の値だけを出力するのですか?このコードの何が問題になっていますか?

    while($row = mysql_fetch_array($result)){
        print $row['field1'];
        print $row['field2'];
        print $row['field3'];
        print $row['field4'];
    }

しかし、このようにすると、すべての値が出力されます。

4

2 に答える 2

4

配列でexplode()を使用しています。Explodeは、文字列から配列を作成するために使用されます。これを行う必要はありません。理解するには、マニュアルhttp://php.net/explodeを参照してください。以下の行を変更してください

$inv = array('field1','field2','field3','field4');
$item = explode(',',$inv);

$item = array('field1','field2','field3','field4');
于 2013-03-14T03:20:30.373 に答える
0

あなたの編集に基づいて、フィールド名には先頭のスペースが含まれていると思います。var_dump()変数の aでそれを確認する必要があり、$iそれをトリミングすることで解決できます。

$i = trim($i);
于 2013-03-14T04:06:25.240 に答える