php - PHP MySQL函数计算输出
问题描述
我编写了一个函数,其中应从两个表中获取按钮的值。五个按钮应并排显示。这在理论上可行,但是第一个按钮的输出显示 5 次,第二个按钮显示 4 次,依此类推。
我错过了什么输出多次输出?
function get_strat($map_id, $map_site, $operator_role_input) {
global $connection;
$query = "SELECT * FROM strat WHERE map_id = $map_id AND strat_role_id = $map_site";
$select_all_defense_strats = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_all_defense_strats)) {
$map_id = $row['map_id'];
$operator_id = $row['operator_id'];
$operator_role = $row['operator_role'];
if($operator_role === $operator_role_input) {
$query = "SELECT operator_name FROM operator WHERE operator_id = $operator_id";
$get_operator_name = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($get_operator_name);
$operator_name = $row['operator_name'];
}
echo $operator_name;
}
}
<div class="btn-group">
<button type="button" class="btn btn-default">
<?php
$operator_role_input = '1';
get_strat($map_id, $map_site, $operator_role_input);
?>
</button>
<button type="button" class="btn btn-default">
<?php
$operator_role_input = '2';
get_strat($map_id, $map_site, $operator_role_input);
?>
</button>
.... (up to 5)
解决方案
因为您的变量$operator_name
在if statement
. 当它有价值时 - 它会打印它。当比较为假时 - 然后它是undefined。
把它的默认值放在前面if statement
:
$operator_name = '';
if(){...}
echo $operator_name;
或者只是把你的echo $operator_name;
里面和你的if statement
.
推荐阅读
- xcode - 如何在模拟器上启用暗模式?
- python - PySide2/QML 填充和动画 Gridview 模型/委托
- react-native - 按下时更改图像反应本机
- excel - 如何在odoo 12社区的考勤模块中导入excel文件?
- reporting-services - 矩形不在带有表格的多个页面上重复
- c# - 使用 .NET API 保护和加密 ActiveMQ 消息
- ios - NSAttributedString 大小计算使用 .usesFontLeading 选项返回不同的结果
- go - 使用 go-sql-driver 和 mysql 安全插入查询
- c# - 如何将特定的 XElement 修改为 file.xml
- elasticsearch - 在嵌套字段上做直方图时,如何获取最后一个值?