2011-12-24 6 views
-1

MySQLでの配列の動作を理解できません。 私は "id"と呼ばれる1つの列を持つテーブルを持っていました、各行は "id"の乱数値を持っています。 (行がだから私は持っていることがあり、それらをテーブルに入れた日付(タイムスタンプと呼ばれる別の列)PHP MySQLアレイ

順に以下のとおりです。

「ORDER BY」によって、今、私は再手配することができ、それら
//row#: id# 
row1: 5 
row2: 17 
row3: 2 
row4: -54 
row5: 18 

と今、私は配列($ orderedArray)を持っているので、「ID」の昇順で

$table1 = mysql_query("SELECT * FROM table1 ORDER BY id ASC") or die(mysql_error()); 
$orderedArray = mysql_fetch_array($table1); 

を入れて...それはこの権利のようでなければなりません?:

row4: -54 
row3: 2 
row1: 5 
row2: 17 
row5: 18 

「id」列は、行番号の代わりに順番に並んでいます(私の場合、行1または行3の代わりに後日(タイムスタンプ)が表示されますが、例を簡単に...

私はこの配列を持っています...私は私のORDER BYテーマ配列の3番目の行を印刷したいとしましょう(別名オリジナルテーブルの行は " id "列...私のコードは何ですか?

私はこのようなものを想定し(しかし、それは動作しませんでした):

$row3id = $orderedArray['id', 3]; 
print $row3id; 

誰でも知っていますか?ありがとう!

+1

あなたはかなりのMySQLからすべての行を取得し、すべてが、無視するよりも、唯一の第三列を返すために、この使用MySQLsのLIMITにしてください3番目の –

+1

mysql_fetch_arrayは結果セットの最初の行を配列として取り出します。結果全体が配列として設定されるわけではありません。私の答えは以下を参照してください。 –

+0

@マーク、ありがとう!それは物事をよりスムーズに動かすでしょう!私は昨日限られたものを見てみると混乱しましたが、今では私がそれらを使っていることを知っているので、今日はずっと簡単になるはずです!みんな、ありがとう! –

答えて

1

試行:

while ($row = mysql_fetch_array($table1)) { 
    $orderedArray[] = $row; 
} 

$row3id = $orderedArray[2]; 

PHPアレイが最初のインデックスとして0で始まります。

また、mysql_fetch_arrayにはオプションのパラメータresult_typeがあり、結果をどのように返すかを決めることができます。既定値はMYSQL_BOTHです。これは、result_typeを特定していないことがわかっている場合に使用されるもので、連想検索インデックスと番号付きインデックスの配列結果が表示されます。

は、詳細はこちらをご覧ください:

http://php.net/manual/en/function.mysql-fetch-array.php

+0

予約!ありがとう!!! :) –

1

mysql_fetch_array()が最初である単一の行をバック与えるだろう。配列が動作します。この場合、

while($row = mysql_fetch_array($query)){ 
    $id[] = $row['id']; 
} 
// Use 
$result = $id[2]; 

:それらのすべてを取得するためには、まずwhileループを行う必要があります。そしてもしあなたが3番目のものを手に入れたいのなら、mysql_fetch_row()と思っています。

+2

'$ id [] = $ row ['id'];' echo $ id [3]; ' – tamilsweet

+0

はい。私のコードを気にしてくれてありがとう。 – MahanGM

1

マイソリューション: あなたは正確に三行をしたい場合は、あなたのSELECTは、配列$ orderedArray である:

$ I = 0;

while($orderedArray=mysql_fetch_array($table1)) 

{

IF($ I == 2){エコー$ orderedArray [1]。 } $ i ++;

}

ない最高のが、第三列のために働いて:)

+0

私はループを使って3番目のものをキャッチしていると思っていました。ありがとう! :)しかし、他の答えにもいくつかの素晴らしい解決策があった、あなたはそれらをチェックする必要があります! –