2009-07-16 98 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-每个。

它效率较低,但它更健壮,更易于调试。