[英]Array Returning the same value in 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的组合框中获得的值。
您总是只返回第一行。 也许您想要整个数据集,而不仅仅是第一条记录。 所以试试这个:
$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;
为什么
return(array($row['position']));
而不仅仅是
return($row['position']);
对于任何其他帮助,您必须提供更多信息(hmtl?输出?)
浓汤的答案是正确的。
请注意,无条件返回循环内的某些内容会使循环本身仅运行一次 。 通常这是对的,您应该始终避免使用这种怪物:)
如果您是节省内存的人,那么您会在CPU方面做很少的改进:
mysql_fetch_assoc()
避免检索您不会使用的整数索引数组
如果您不希望在变量内部进行解析,请不要使用双引号。
$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;
其他人都发表了很好的答案。 只是一个建议-对数据库包装器类进行编码,因此您不必一直手动获取数组,这是不断出错的来源。 我有自己的Query类,执行查询后,我只需要执行$ query-> dumpResultAsArray()并从那里进行for-each。
它的效率较低,但更健壮且更易于调试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.