php在单个结果时显示字符串的第一个字符,但在多个结果时显示完整字符串

vsikbqxv  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(233)

所以我遇到的问题是,我有一个select字段,它是通过php填充的。查询mysql数据库,php处理返回的数组,将其打印到select字段的options中。
但是,当从数据库返回单个结果时,只显示字符串的第一个字符。如果返回多个结果,则所有结果都将完全显示。我已经检查了当返回单个结果时,字符串本身是否正确,确实如此,所以我不认为这是数据检索的问题。此外,也不会产生任何错误,因此不会提供任何有关哪里出错的线索。
我试图找到其他描述这个问题的stackoverflow帖子,但是没有找到任何东西,也没有在互联网的其他地方找到任何东西。
这是收集结果的db存储过程:

  1. BEGIN
  2. SELECT BranchID, City FROM Branch;
  3. END

然后这个php将数据转换成一个关联数组:

  1. $result = $currentconnection->DBQuery("CALL Fetch_Branch_City_All()");
  2. if( !$result) die($mysql->error);
  3. while($row = $result->fetch_assoc()){
  4. $BranchID = $row["BranchID"];
  5. $CityName = $row["City"];
  6. $results = $this->array_push_assoc($results, 'BranchID', $BranchID);
  7. $results = $this->array_push_assoc($results, 'CityName', $CityName);
  8. }

这是一段中间代码,通过$query变量调用上面的函数并使下面的代码可以使用它。

  1. $Query = $pModel->fetchBranchCity();

最后,这段代码从数组数据中创建select:

  1. <?php //Note if only one branch in system, displays single character
  2. extract($Query, EXTR_OVERWRITE);
  3. for ($a = 0; $a < count($BranchID); ++$a) {
  4. if($BranchID[$a] == $BranchIDText){ ?>
  5. <option value="<?=$BranchID[$a]?>" selected="selected"> <?=$CityName[$a]?> </option>
  6. <?php }else{ ?>
  7. <option value="<?=$BranchID[$a]?>"> <?=$CityName[$a]?> </option>
  8. <?php }
  9. }
  10. ?>
wpx232ag

wpx232ag1#

它与提取有关,$result总是一个数组,$branchid和$cityname并不总是。
因此,当它们有一个值时,它们不是数组,只是字符串,通过它们循环提取字符,而不是数组中的整个字符串。
请告诉我,如果你需要帮助处理这个代码异常。
提示:是数组吗

相关问题