Array在PHP中返回相同的值

时间:2009-07-16 09:41:27

标签: php

  $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。但是每次我选择它都会显示相同的值。

function getID($chName) {

}

chName是我从Flex的组合框中获得的值。

5 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

为什么

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

而不仅仅是

return($row['position']);

对于任何其他帮助,您必须提供更多信息(hmtl?output?)

答案 2 :(得分:0)

Gumbo的回答是正确的。

请注意,无条件地在循环内返回某些内容会使循环本身仅运行一次。这是正确的,你应该总是避免这样的怪物:)

如果你是一个记忆保护程序的人,那么你的内存就会有很小的改进:

mysql_fetch_assoc()

避免检索你不会使用的整数索引数组

答案 3 :(得分: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;

答案 4 :(得分:0)

其他人发表了很好的答案;只有一个建议 - 编写一个DB包装器类,这样您就不必一直手动获取数组,这是常量错误的来源。我有自己的Query类,在执行查询后,我只需执行$ query-> dumpResultAsArray()并从那里执行for-each。

效率较低,但更强大,更容易调试。