所以我遇到的问题是,我有一个select字段,它是通过php填充的。查询mysql数据库,php处理返回的数组,将其打印到select字段的options中。
但是,当从数据库返回单个结果时,只显示字符串的第一个字符。如果返回多个结果,则所有结果都将完全显示。我已经检查了当返回单个结果时,字符串本身是否正确,确实如此,所以我不认为这是数据检索的问题。此外,也不会产生任何错误,因此不会提供任何有关哪里出错的线索。
我试图找到其他描述这个问题的stackoverflow帖子,但是没有找到任何东西,也没有在互联网的其他地方找到任何东西。
这是收集结果的db存储过程:
BEGIN
SELECT BranchID, City FROM Branch;
END
然后这个php将数据转换成一个关联数组:
$result = $currentconnection->DBQuery("CALL Fetch_Branch_City_All()");
if( !$result) die($mysql->error);
while($row = $result->fetch_assoc()){
$BranchID = $row["BranchID"];
$CityName = $row["City"];
$results = $this->array_push_assoc($results, 'BranchID', $BranchID);
$results = $this->array_push_assoc($results, 'CityName', $CityName);
}
这是一段中间代码,通过$query变量调用上面的函数并使下面的代码可以使用它。
$Query = $pModel->fetchBranchCity();
最后,这段代码从数组数据中创建select:
<?php //Note if only one branch in system, displays single character
extract($Query, EXTR_OVERWRITE);
for ($a = 0; $a < count($BranchID); ++$a) {
if($BranchID[$a] == $BranchIDText){ ?>
<option value="<?=$BranchID[$a]?>" selected="selected"> <?=$CityName[$a]?> </option>
<?php }else{ ?>
<option value="<?=$BranchID[$a]?>"> <?=$CityName[$a]?> </option>
<?php }
}
?>
1条答案
按热度按时间wpx232ag1#
它与提取有关,$result总是一个数组,$branchid和$cityname并不总是。
因此,当它们有一个值时,它们不是数组,只是字符串,通过它们循环提取字符,而不是数组中的整个字符串。
请告诉我,如果你需要帮助处理这个代码异常。
提示:是数组吗