2011-10-20 19 views
1

配列に結果を追加して画面に出力したいと思います。 ここに私のコードと何も印刷されていない...誰かが私を見て助けることができる。MySQLの結果をPHPの配列に追加する

include('config.php'); 

$con = mysql_connect($host, $username, $password); 
if (!$con){ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db('members', $con) or die(mysql_error()) ; 

$sql = "SELECT * FROM people where status like '%married%' "; 
$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)){ 
    $result_array[] = $row['id']; // <-------**here**    
} 

return $result_array;  

echo($result_array); 
mysql_close($con); 

答えて

2

まず、変更:

mysql_select_db(mtar, $con) or die(mysql_error()); 

へ:

mysql_select_db('mtar', $con) or die(mysql_error()); 

その後return $result_array;を削除する - それだけで、スクリプトの実行を停止し、関数の外で使用する場合、あなたはそれを必要としません。最後に

、変更

echo($result_array); 

へ:

print_r($result_array); 

EDIT:いくつかの追加の考え:

あなたはechoに引数を括弧で囲む必要はありません - それは実際に、より効率的ですそれらを放置する:echo $var;は、より速いです。echo($var);

id列のみを使用する場合は、行全体を選択しないでください。SELECT * FROMの代わりにSELECT id FROMを使用してください。

「結婚しました」のいずれかの側にワイルドカードが必要ですか?あなたはうまくいくかもしれませんが(statusの可能な値に依存します)、おそらくあなたはしません。だから、

$sql = "SELECT id FROM people where status = 'married' "; 

は、アレイ上の `echo`を使用して言及していない

+0

注: 'print_r'はデバッグ目的でのみ使用してください。 –

+0

@daiscog - ありがとうございました - それは自分自身を呪いから私を停止:) –

5

あなたはreturnあなたが行う前に、エコー/にmysql_closeをやっているので、エコー/クローズの呼び出しは実行されません飽きません。このスニペットの周りにコードがたくさんあるのでなければ、実際には関数ではないので、その戻り呼び出しを行うことに意味がないので、戻り値は実質的に "exit()"呼び出しとして機能します。実行スタックの最上部にあります。

+4

、良いかもしれずっとあなたを与えることはありません。 – 999999

関連する問題