2009-07-16 10 views
0
$result = mysql_query("SELECT position 
     FROM ".$this->table_name." 
     WHERE c_name = '".$chName."'"); 

     while($row = mysql_fetch_array($result)) 
     { 
      return(array($row['position'])); 
     } 

私はcomboxを変更しても同じ値を得ています...変更されたときにcomboxボックスのIDが必要です。しかし、私が選択するたびに、同じ値が表示されます。Array PHPで同じ値を返す

function getID($chName) { 

} 

chNameは、Flexのコンボボックスから取得した値です。あなたはより多くのinformationn提供する必要があり、他のヘルプについて

+0

フォームのHTMLを投稿できますか? – beggs

答えて

0

なぜ

return(array($row['position'])); 

だけではなく、

return($row['position']); 

(HMTL?出力?)

2

あなたはいつもちょうど最初の行を返すされています。おそらく、最初のレコードだけでなく、データ全体が必要です。だからこれを試してください:

$result = mysql_query("SELECT position 
    FROM ".$this->table_name." 
    WHERE c_name = '".$chName."'"); 
$retVal = array(); 
while ($row = mysql_fetch_array($result)) { 
    $retVal[] = $row['position']); 
} 
return $retVal; 
0

グンボの答えは正しいです。

無条件にループの中に何かを返すと、ループ自体はに一度だけ実行されます。これは、一般的に真である、あなたは常に、このようなモンスターを避ける必要があります:)

あなたは男セーバーメモリされている場合は、非常に少ないメモリにCPUの改善を行います。

整数インデックス付きの配列を取得することを回避する
mysql_fetch_assoc() 

あなたは使用しません

0

解析された変数の中に変数を入れたくない場合は、二重引用符を使用しないでください。

$results = array(); 

// Dont forget you should be escaping $chName 
$result = mysql_query("SELECT `position` FROM `{$this->table_name}` WHERE `c_name` = '$chName';"); 

while($row = mysql_fetch_array($result)) 
{ 
    $results[] = $row['position']; 
} 

return $results; 

それとも

$results = array(); 

// Dont forget you should be escaping $chName 
$result = mysql_query('SELECT `position` FROM `'.$this->table_name.'` WHERE `c_name` = \''.$chName.'\';'); 

while($row = mysql_fetch_array($result)) 
{ 
    $results[] = $row['position']; 
} 

return $results; 
0

他の人々は良い答えを掲載しています。ただ1つの提案 - DBラッパークラスをコーディングしてください。常に一定のエラーの原因となる配列を手動でフェッチする必要はありません。私自身のQueryクラスがあり、クエリを実行した後、$ query-> dumpResultAsArray()を実行し、for-eachをそこから実行します。

効率的ではありませんが、デバッグするのがより堅牢で簡単です。

関連する問題