2009-07-16 97 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的組合框中獲得的值。

+0

你能發佈表單HTML嗎? – beggs 2009-07-16 09:44:00

回答

0

爲什麼

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

並不僅僅是

return($row['position']); 

爲你提供更多的信息N任何其他幫助(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

Gumbo的回答是正確的。

請注意,無條件返回循環內部的東西使循環本身只能運行一次。這是一般真實,你應該總是避免這樣的怪物:)

如果你是保護人,你做了很少的內存的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

的其他人已經貼好答案;只有一個建議 - 編寫一個數據庫封裝類,因此您不必一直手動獲取數組,這是一個常量錯誤的來源。我有我自己的查詢類,並在執行查詢後,我只是做$ query-> dumpResultAsArray()並從那裏做for-每個。

它效率較低,但它更健壯,更易於調試。