2012-03-05 7 views
0

列全体を選択する必要があります。 私の質問はどのようにして列全体を取得するのですか?mysqlは列全体を選択するか、すべてのIDを循環します

 $query = "SELECT * "; 
     $query .= "FROM employees "; 
     $query .= "WHERE id=*"; 
     $query .= "ORDER BY id ASC "; 

私は= * IDを試みたが、運が... 私の目標は、すべてのIDを順番にではありませんが、いくつかはそう、私は数値または連想配列と使用するforeachに入れて考え出しないことがあります。より良い方法があれば、分けてください。

EDIT:

function get_all_ids() 
    { 
     global $connection; 
     $query = "SELECT * "; 
     $query .= "FROM employees "; 
     $query_result = mysql_query ($query , $connection); 
     confirm_query($query_result); 
     $query_result_array = mysql_fetch_assoc($query_result); 
     return $query_result_array; 
    } 

私は配列

$all_id = get_all_ids(); 
// preparing the table; 
    echo "<pre>"; 
    print_r($table); 
    print_r($all_id); 
    echo "</pre>"; 

を印刷するためにこれを使用して、これはあなたがすべてのレコードをしたい場合は、あなたが必要といけない配列

Array 
    (
     [id] => 1 
     [department_id] => 1 
     [name] => jordan 
     [EGN] => 9108121544 
     [email] => testEmail 
     [address] => testAddress 
     [country] => testCounty 
    ) 
+0

いいえ、それは私に最初の行を与えます。 – Jordashiro

+0

DBに複数の行がありますか? – prodigitalson

+0

ええ、私は秒で私の質問を更新します。 – Jordashiro

答えて

3

は、あなたはすべての結果が取得されるまでフェッチを維持する必要があります:

$q = mysql_query('SELECT * FROM `table`'); 
while (($row = mysql_fetch_assoc($q)) != FALSE) 
{ 
// Do something with *one* result 
} 
mysql_free_result($q); 

あなたは1回のフェッチですべてのIDを取得したい場合は、あなたができる:

$q = mysql_query('SELECT GROUP_CONCAT(`id`) AS `id_list` FROM `table`'); 
$row = mysql_fetch_assoc($q); 
mysql_free_result($q); 

$list_of_ids = explode(',', $row['id_list']); 

WARNING:GROUP_CONCAT()は通常1024バイトの結果の制限があります。あなたの結果がは大きなテーブルでは切り捨てられます。最初の解決策に頼るか、現在の接続に対してgroup_concat_max_lenを増やすことができます。

+0

だから、1行1行を取得し、基本的にassoc配列に入れてください。私はすぐにそれを試します – Jordashiro

+0

...または結果セットのサイズに応じて - あなたは2番目のソリューションを使用することができます。 –

+0

ありがとうございます。これはすべてのIDを処理して返しました。 – Jordashiro

1

おそらくあなたは、単純な意味:

SELECT id 
FROM employees 
ORDER BY id ASC 

これはあなたに一列のみを与えた場合、あなただけの1行を持っているか、あなたはすべての結果を通じてLIMIT 1またはPHPコードないループを追加しているのいずれかが、ちょうどそれらの最初のものを示しています。 PHPコードを追加してください。

0

単一の列を選択する場合。次に、 "*"を使用しないで、列名の名前をコンマで区切って指定し、安全のために "` "(tick)で引用します。あなたの結果セットの複数の行がある場合

$query = "SELECT `id` "; //if you only want to get ids from the table 
$query .= "FROM employees "; 
$query .= "WHERE id=*"; 
$query .= "ORDER BY id ASC "; 
関連する問題