Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql foreach设置动态ID类和值_Php_Mysql - Fatal编程技术网

Php mysql foreach设置动态ID类和值

Php mysql foreach设置动态ID类和值,php,mysql,Php,Mysql,我有这个桌子。我正在努力找出如何设置select使我的foreach循环通过结果,并在每张卡的id上显示正确的有害生物计数和有害生物名称。我正在使用左x和右y在地图上定位卡的id,但我只希望每个卡的id上显示有害生物计数和有害生物名称。我可以显示全部或一个计数使用每张卡的id,但我无法获得与该卡id关联的每个有害生物计数和有害生物名称。 这是我的桌子 pest_name pest_count card_id card_type top_y left_x scout_date A

我有这个桌子。我正在努力找出如何设置select使我的foreach循环通过结果,并在每张卡的id上显示正确的有害生物计数和有害生物名称。我正在使用左x和右y在地图上定位卡的id,但我只希望每个卡的id上显示有害生物计数和有害生物名称。我可以显示全部或一个计数使用每张卡的id,但我无法获得与该卡id关联的每个有害生物计数和有害生物名称。 这是我的桌子

pest_name   pest_count  card_id   card_type top_y   left_x   scout_date
Aphids      2              1       yellcard  652    703   3/13/2014 15:59:54
Thrips      4              1       yellcard  652    703   3/13/2014 15:59:54
Thrips      2              2       bluecard  754    707   3/13/2014 15:59:54
Thrips      1              3       yellcard  531    616   3/13/2014 15:59:54
Thrips      1              5       yellcard   80    613   3/13/2014 15:59:54
这是我最后想要的每张卡上的每个害虫名称和害虫计数。 这将是卡号1

   2 Aphids
   4 Thrips
这是我尝试过的众多选择之一

 $stmt = $pdo->prepare("SELECT card_id,card_type,top_y,left_x,pest_count,pest_name,scout_date FROM scout_logpestnum WHERE scout_date ='2014-03-13 15:59:54' GROUP BY card_id");
 $stmt->execute();
 $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
这是html

<?php
 foreach($result as $obj) {
?>
<div id="input<?= htmlspecialchars($obj['card_id']) ?><?= htmlspecialchars($obj['pest_name']) ?>" class="input stickyinput"><?= htmlspecialchars($obj['pest_count']) ?></div>

 <div class="pestnameholder">
<?php
echo'<div class="pestname '.$obj['pest_name'].'">'.$obj['pest_name'].'</div>' ;
echo '</div>';
 }


您可以使用
group\u concat
concat
作为有害生物名称和计数,然后根据所有其他属性进行分组。这允许您为pest_名称和pest_计数设置一个标签:

select
  group_concat(concat(pest_count,' ',pest_name) separator '<br/>') pests,
  card_id,
  card_type,
  top_y,
  left_x,
  scout_date
from scout_logpestnum
group by
  card_id,
  card_type,
  top_y,
  left_x,
  scout_date
选择
组_concat(concat(pest_count,,,pest_name)分隔符“
”)害虫, 卡号, 卡式, 顶呱呱, 左, 童子军日期 来自scout_logpestnum 分组 卡号, 卡式, 顶呱呱, 左, 童子军日期

您想要的最终结果不见了。我仍有兴趣让它发挥作用。下面的代码将
显示为文本以及有害生物名称和有害生物计数。因此,我在页面上看到了2只蚜虫
4只蓟马。
对用户来说是可行的。我想知道一个连接是否能完成我想要的。我现在就用这个,直到我能想出如何包含动态类,这样我才能显示和隐藏。组_concat(concat(pest_count,,,pest_name)分隔符0x1D)我认为上述方法有效,但在增加div的宽度后,结果在一行上。我尝试过
,\n和其他方法,但当我在FX中查看时,所有内容实际上都显示在页面上,并且都在源代码中。什么会导致这个问题?例如,在我的实际页面上,我看到2个蚜虫
4个蓟马

没有像我想要的那样作为源代码隐藏,所以它实际上是作为最终结果显示给用户的。我发现了一个你不能使用的问题,你必须使用,谢谢你的想法。在找到将它们放在动态类中的方法之前,我将一直使用它。谢谢你的代码。我从未使用过这个函数。我想那会很好,但是你是如何得到蚜虫和蚜虫的呢Thrips要堆叠在彼此的顶部而不是一行吗?经过进一步思考,我真的需要那些标签,它们的值在一个单独的div中,因为我希望能够根据它们的类隐藏标签和它们的值。你可以将html放入
害虫
字符串中。尝试
group_concat(concat(pest_name,”(”,pest_count,”)
在害虫之间添加换行符,或
group_concat(concat(“”,pest_name,”(“,pest_count,”)
将每个标签放在单独的
中。谢谢。这是行不通的,因为我需要像在html中那样通过foreach循环动态设置类。你不能从数据库中提取你的类值吗?什么决定了班级?