2016-05-12 38 views
0

私は非常に奇妙な問題に遭遇しています。配列がPHPで正常に動作していない

私はMySqlから特定のデータベーステーブルの列名を出力する関数を持っています。

"id", "first_name", "last_name", "email", "address", "country", "city", "state", "phone_number", "fax", "image", "datecreated", "dateupdated", "Company", "token", 

below-私は

$searchArray = array("first_name","last_name","email","address","country","city","state","phone_number","fax","image"); 

below-私はこの中で関数の変数を使用する必要があるように、現在の静的な値は別の配列変数を持っているような出力が見える

function getColoumn() { 

    //replace it with your host normally it could be localhost 
    $hostname='localhost'; 
    //mysql user name 
    $username='admin_datauser'; 
    //mysql user password 
    $password='iCoq4KrJM8'; 
    //connect to the mysql server 
    $ss = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 
    //select a database on the mysql server 
    //please change as you like the database name 
    mysql_select_db('admin_data'); 

    //SHOW COLUMNS FROM TABLENAME 
    $query=mysql_query('SHOW COLUMNS FROM user') or die(mysql_error()); 


    foreach($fields as $key=>$field){ 
    echo '"'.$field->Field.'", '; // print each field name 

    } 
} 

$ searchArray私はarryaの変数を呼び出すことを試みたが、どのような方法でも動作しません。

何か助けてください?

+4

[mysql_'データベース拡張](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)を使用しないでください。 は廃止予定ですいつもPHP7のため) PHPを学んでいるだけなら、あなたのエネルギーは 'PDO'データベース拡張を学ぶのに費やしてください。 [ここから] – RiggsFolly

+0

とmysql_query()の後にクエリを実行し、結果セットを作成します。 '$ fields = mysql_fetch_object();'通常while(){} 'ループで書かれています – RiggsFolly

+0

この関数はうまくいかないようです。 '$ fields'は何かが見つからない限り、定義されていません。 –

答えて

1

まず、mysql_関数は非難され、SQLインジェクションを受けやすいので、もう使用しないでください。 PHP独自のまたはmysqliライブラリを使用してください。

それが直接foreachループであなたの配列に要素を追加する方がはるかに簡単です:

$searchArray = array(); 

foreach($fields as $key=>$field){ 
    $searchArray[]= $field->Field; 
} 

注: PHPで[]=オペレータは+=オペレータに似て動作します。数値に加算する代わりに配列に要素を追加します。

+2

また、 '$ fields'はどこから来ましたか?あなたはOPが結果セット – RiggsFolly

+0

@ RiggsFolly trueを読んでいないことを逃しましたが、OPは "出力は以下のようになります"と言います - 結果セットを読んでいない場合は真ではありません。 –

+0

あなたはそこに有効なポイントを作っています! – RiggsFolly

関連する問題