2011-08-13 10 views
0

私は以下のコードを持っていますが、結果を画面に表示する代わりに、$ varというPHP変数に結果を格納する必要があります。それをどうやってやりますか?SQL呼び出しの結果をPHP変数に保存する

<?php 
$sql = "SELECT id_member FROM smf_members WHERE FIND_IN_SET(24,additional_groups)"; 

$con = mysql_connect('localhost', 'sqluser', 'sqlpass'); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("test_db"); 
$result = mysql_query($sql, $con); 

while ($row = mysql_fetch_array($result)) { 
    echo $row['id_member']; 
} 

mysql_close($con); 
?> 

答えて

4

あなたがここに実現したい内容に応じて、もちろんこの

$var = ""; 

while ($row = mysql_fetch_array($result)) { 
    $var .= $row['id_member'] . "\n"; 
} 

$var = array(); 

while ($row = mysql_fetch_array($result)) { 
    $var[] = $row['id_member']; 
} 
+0

少々の調整をすれば、あなたのコードは箱から出てきたようです。 +記号をaに変更しました。タイプミスか必要なのか分かりませんが、いずれにしても私にとってはうまくいくようです。ありがとう。 – Amy

+0

問題はありませんでした。+はドットになりました。小さなタイポが修正されました。 – Tristan

1

select文は、その後、あなたは配列に値を格納する必要があり、複数の結果が返されます場合:

$member_ids = array(); 
while ($row = mysql_fetch_array($result)) { 
    $member_ids[] = $row['id_member']; 
} 

select文は、(あなたが確認することができ、単一の結果を返します場合変数$sqlの値にLIMIT 1を追加します)。

$row = mysql_fetch_array($result); 
$member_id = $row['id_member']; 
+0

を行うためのいくつかの可能な方法であることは、 '$ member_ids [] = $行であります['id_member']; 'ではなく、$ member_ids = $ row ['id_member'];編集できません – yokoloko

+1

@yokoloko:それはタイプミスでした。もちろん、それは私の意図でした。私はそれがダウンボートの価値があるとは思わない。それを指摘してくれてありがとう! – Shef

+0

誰が私が投票したと言った:)私はSO @ theheの唯一のユーザーではない。私はちょうどAmyのためにそれを指摘しました – yokoloko

2

echo$var[]に置き換えます。

これは、各結果を配列の最後にプッシュします。変数を最初に定義すると良いでしょう。

$var = array(); 
while ($row = mysql_fetch_array($result)) { 

    $var[] = $row['id_member']; 
} 
+0

変数をエコーし​​ようとしたときに何か間違って入力したのかどうかわかりませんが、画面に表示されているのは単語Arrayであり、私が期待した結果ではありません。何か不足していますか? – Amy

+0

これはphp echoの配列の仕組みです。代わりに 'var_dump($ var);'を使用してください。 –

2
<?php 
$sql = "SELECT id_member FROM smf_members WHERE FIND_IN_SET(24,additional_groups)"; 

$con = mysql_connect('localhost', 'sqluser', 'sqlpass'); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("test_db"); 

$result = mysql_query($sql, $con); 

$v = array(); // $v instead of $var, since var is a keyword and may cause troubles 

while ($row = mysql_fetch_array($result)) { 
array_push($v, $row['id_member']); 
// or 
//$v[] = $row['id_member']; 
} 

mysql_close($con); 

?>

+0

[これは問題を引き起こすことはありません](http://codepad.org/IJ8cGhGs) –

+0

古いバージョンのPHPでは可能でしょう。 – Rolice

+0

私は変数名を$ testに変更し、あなたのコードを試しましたが、上記の他の例のように、変数をエコーアウトしたときに画面上で見たすべてが単語Arrayでした。私は間違ったことをする必要があります。 – Amy

関連する問題