【问题标题】:How to change which variable is used, depending on another value如何根据另一个值更改使用哪个变量
【发布时间】:2021-07-04 05:52:03
【问题描述】:

我正在尝试做一个有趣的副项目,但在一个小问题上停下来。我试图将 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']) 放入下一个输出的方法。所以当它是一个工具箱时它看起来像这样。

&lt;?php while($toolbox = mysqli_fetch_assoc($toolbox_set)) { ?&gt;

但由于它是被拉出的不同项目类型,因此可能会发生变化:

&lt;?php while($flashlight = mysqli_fetch_assoc($flashlight_set)) { ?&gt;

完整代码,用于上下文:https://zerobin.net/?9f772676aa87df3f#Gxy43WGqShTkL/VG42+t3nT4+sxGhxFy+GDB0B3+YH0=

【问题讨论】:

  • 如果代码完全没有意义,那么您的第二位,因此很难从中看出您想要实现的目标。 I need the words after $ to be changed 也不清楚 - 你能给出一个更好的描述和例子来说明你的意思吗?
  • 我正在尝试找到一种方法将 $ 之后的单词更改为从表中选择的值。 &lt;?php while($toolboxaddon = mysqli_fetch_assoc($toolboxaddon_set)) { ?&gt; &lt;?php } ?&gt; &lt;?php mysqli_free_result($toolboxaddon_set);?&gt; 有没有办法可以在 $toolboxaddon 所在的位置使用 echo 命令?我创建了一个文件粘贴来显示整个代码。 zerobin.net/?9f772676aa87df3f#Gxy43WGqShTkL/…
  • Echo 用于输出到屏幕。它与改变价值观无关。仍然不知道您所说的“$ 之后的单词”是什么意思。什么话?让我们尝试另一种方式 - 向我们展示来自 $toolboxaddon_set 的数据以及代码完成后您想要获得的输出。
  • 您只是想将$toolboxaddon_set 中的所有值输出到屏幕上吗?
  • 此代码显示从表中选择的随机项目。 &lt;?php while($item = mysqli_fetch_assoc($item_set)) { ?&gt; &lt;?php echo h($item['name']);?&gt; 例如工程师工具箱&lt;?php echo h($item['rarity']);?&gt; E.g.非常罕见&lt;?php echo h($item['type']);?&gt;工具箱&lt;?php echo h($item['media']);?&gt; 例如Engineerstoolbox.png &lt;?php } ?&gt; 然后我试图找到一种将echo h($item['type']) 放入下一个输出的方法。所以当它是一个工具箱时它看起来像这样。 &lt;?php while($toolbox = mysqli_fetch_assoc($toolbox_set)) { ?&gt;

标签: php arrays mysqli echo


【解决方案1】:

您应该将所有不同的附加结果存储在associative array 中,其中的键与主项目查询中可能的“类型”值相匹配。这允许您使用字符串从数组中选择一个项目来引用其键 - 您可以从 $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>

注意mysqli_free_result 这里可能不需要。

【讨论】:

  • mysqli_free_result() 可能永远不需要。 :)
猜你喜欢
  • 1970-01-01
  • 2020-02-18
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2018-08-12
  • 2022-01-10
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多