2010-11-30 14 views
0

mysql &から2つのテーブルカラムを取得し、あるカラムの内容の一部をotherの内容に置き換える必要があります。これは私のやり方ですが、何も表示されません。 I [0]、$行& $行をエコーし​​てコードをテストPHPクエリで複数のテーブルの列を取得するにはどうすればよいですか?

$query = "SELECT id, msg FROM msg2_qualities"; 
    $result = mysql_query($query);  
    $outArray = array(); 
    if ($result) { 
     while ($row = mysql_fetch_assoc($result)) 
       { 
        $row2 = str_replace('testWord','$row[0]',$row[1]); 
        $outArray[] = $row2; 
        } 
       } 
    echo json_encode($outArray); 

EDIT [1]は値を持ちません。しかし、私はテーブルから単一の列を取得するためにクエリを実行すると、それが正常に動作しますよう

 $query = "SELECT msg FROM msg2_qualities"; OR 
    $query = "SELECT id FROM msg2_qualities"; 
+2

あなたの主な問題は論理です。確かな論理の欠如。あなたは複数の列を取得する方法を尋ねていますが、あなたの本当の問題はそれからは遠いです。複数の列を表示するには、列をエコーアウトする必要があります。ちょうどエコーと他の何も。配列はありません。置換はありませんが、ただエコーします。あなたがそれらをエコーアウトし、あなたの列を持っていることを確認すると、あなたはどこか他の場所にあなたの問題が表示されます。おそらく文字列の構文 –

+0

$ row [0]のシングルクォーテーションで構文エラーが発生しました... –

+0

はい、それは確かにありそうです;) – mingos

答えて

2

$row[0]の前後に引用符を削除してください、と名前ではなくインデックスでフィールドを参照してください。

$row2 = str_replace('testWord', $row['id'], $row['msg']); 
1

あなたはmysql_fetch_assocので、コードを使用していることは、次のようにする必要があります: -

while ($row = mysql_fetch_assoc($result)) 
{ 
    $row2 = str_replace('testWord',$row['id'],$row['msg1']); 
    $outArray[] = $row2; 
} 

感謝。

+0

あなたの提案は非常に近いですが、私もそれを試しましたが、十分に明確ではありませんでした。ヘルプのThanX – XCeptable

+0

はまだ解決策が見つからない、またはうまくいかないことを意味しています。私はここで論理全体を書くつもりはない。ありがとう –

+0

いいえ、あなたは間違っていましたが、解決策はこの$ row ['id']と$ row ['msg']です。私はあなたの提案が解決に非常に近いところにあなたに感謝します。 – XCeptable

関連する問題