php - For cycle & MYSQL 在 $i var 上乘以变量值

标签 php mysql

我正在尝试创建变量 $cdn_1 到 $cdn_30(一个月中的几天),并在 php 和 mysql 上使用 for 循环为它们分配一个值。 var 获取的值基于 COUNT() 类型的 mysql 查询。这里的问题是,例如 var $cdn_6 的值应该是 4,但脚本会重复该值的次数。 当我打印 $cdn_6 时,该值应该是 4,输出是 4444,如果 mysql 的检索值增加,也会发生同样的情况,如果它应该是 5,它实际上显示 55555。我真的不知道为什么会这样。我将衷心感谢您的帮助。谢谢!

for ($i = 1; $i <= 30; $i++) {
  $conalyfor=mysqli_connect($servername,$username,$password,$db);
  $queryalyfor = "SELECT COUNT(*) FROM `".$table_projects."` WHERE `day_id` = '".$i."' ";
  $resultalyfor = mysqli_query($conalyfor, $queryalyfor);
  while($row = mysqli_fetch_array($resultalyfor)) {

  $amount_day= $row["COUNT(*)"];

  };
  mysqli_close($conalyfor);

  $string = 'cnd_'.$i;
  extract(array($string => $string));
  $varrf = "cnd_".$i;
  $$varrf = $amount_day;
  $v2 = "cnd_".$i;

};

echo $cnd_6;

最佳答案

您可以先创建一个空数组,然后使用 1 个查询获取按 day_id 分组的所有结果,从而简化此操作:

$days = array_fill_keys(range(1,31), 0); // Creates an empty array with keys 1-31

$conalyfor=mysqli_connect($servername,$username,$password,$db);
$queryalyfor = "SELECT day_id, COUNT(*) as total FROM `".$table_projects."` GROUP BY `day_id` ";
$resultalyfor = mysqli_query($conalyfor, $queryalyfor);
while($row = mysqli_fetch_array($resultalyfor)) {

    $days[$row['day_id']] = $row['total'];

};

关于php - For cycle & MYSQL 在 $i var 上乘以变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57401327/

相关文章:

php - 如何将excel文件转换成mysql数据库?

mysql - 通过列中存储的列名从多个列中选择

c# - 如何制作登录表单并重定向到单独的 Windows 表单

mysql - 一篇MySQL Explain解读及提升查询响应时间的建议

php - 如何使用 PHP 检查 MySQL 数据库中的 10 个最新条目是否以字符串开头?

PHP多级授权

php - 对 3 维数组进行排序

javascript - 使用 Dropzone.js 在服务器上删除重命名的文件

MySQL - 当一个表可能没有对应的行时如何在查询中合并 2 个表

php - 获取mysql中的特殊字符