php - 如何根据另一个值更改使用哪个变量
问题描述
我正在尝试做一个有趣的副项目,并在一个小问题上停下来。我试图将 echo 命令放在 while 和 mysqli_fetch_assoc 命令中,因为每次页面刷新时数据都会从表随机函数中选择。
我选择这样的随机项目:
$survivor_set = random_survivor();
$item_set = random_item();
$firstaidkitaddon_set = random_firstaidkitaddon();
$flashlightaddon_set = random_flashlightaddon();
$keyaddon_set = random_keyaddon();
$mapaddon_set = random_mapaddon();
$toolboxaddon_set = random_toolboxaddon();
$survivoroffering_set = random_survivoroffering();
问题代码行如下所示:
<?php while($toolboxaddon = mysqli_fetch_assoc($toolboxaddon_set)) { ?>
但是我需要$
改变之后的话,所以正在寻找这样的东西:
<?php while($ echo h($item['item']);addon = mysqli_fetch_assoc($ echo h($item['type']);addon_set)) { ?>
这可能解释得不好,如果有人能借一些时间来帮助我,我可以更详细地展示我到底想要完成什么,我将不胜感激。
该代码显示了从表中选择的随机项目。
<?php while($item = mysqli_fetch_assoc($item_set)) { ?>
<?php echo h($item['name']);?> E.g. Engineers Toolbox
<?php echo h($item['rarity']);?> E.g. veryrare
<?php echo h($item['type']);?> E.g. toolbox
<?php echo h($item['media']);?> E.g. engineerstoolbox.png
<?php } ?>
然后我试图找到一种方法将其echo h($item['type'])
放入下一个输出中。所以当它是一个工具箱时它看起来像这样。
<?php while($toolbox = mysqli_fetch_assoc($toolbox_set)) { ?>
但是由于它是被拉出的不同项目类型,因此可能会发生变化:
<?php while($flashlight = mysqli_fetch_assoc($flashlight_set)) { ?>
完整代码,上下文:https ://zerobin.net/?9f772676aa87df3f#Gxy43WGqShTkL/VG42+t3nT4+sxGhxFy+GDB0B3+YH0=
解决方案
您应该将所有不同的附加结果存储在关联数组中,其中键与主项目查询中可能的“类型”值匹配。这允许您使用字符串从数组中选择一个项目以引用其键 - 您可以从$item['type']
变量中获取该字符串值。
例如
$survivor_set = random_survivor();
$item_set = random_item();
$addons = array(
"firstaid" => random_firstaidkitaddon(),
"flashlight" => = random_flashlightaddon(),
"key" = random_keyaddon(),
"map" = random_mapaddon(),
"toolbox" => random_toolboxaddon()
);
$survivoroffering_set = random_survivoroffering();
然后稍后您可以通过选择匹配的索引从关联数组中选择正确的结果集$item['type']
:
<div class="itemaddonscontainer">
<div class="<?php echo h($item['type']);?>">
<?php while($addon = mysqli_fetch_assoc($addons[$item['type']])) { ?>
<img class="<?php echo h($addon['rarity']);?> survivor-item" src="imgs/survivor/itemaddon/<?php echo h($addon['media']);?>"/>
<?php } ?>
</div>
</div>
NBmysqli_free_result
在这里可能没有必要。
推荐阅读
- r - 如何根据某些参数得到预测值?
- java - 如何从android sqlite中的特定单元格检索Real类型数据?
- javascript - 在javascript中的.textContent中添加链接?
- python - 等高线图双变量对数正态密度函数python
- reactjs - 如何从 React Navigation 5 更改标签栏图标之间的距离?
- java - AndroidStudio EditText 无法编辑(光标消失)
- html - 如何打破宽度:最小内容响应?
- compilation - 编译带有警告的全局变量
- ios - 如何在 wkwebview 的 html 文件中通过 iframe 加载本地文件?
- java - Browserstack:尝试使用junit5在browserstack中执行多浏览器并行测试时遇到问题