$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的组合框中获得的值。
答案 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。
效率较低,但更强大,更容易调试。