首页 > 解决方案 > 统计mysql结果mysqli_fetch_assoc()错误

问题描述

我有这个函数,它将通过在选择日期时从隐藏的输入文本中获取值来产生一个运行数字(标签)的目的(输入文本存储计算后的日期年份)。

我希望输出结果为 E_(year)_(计算总结果后增加 1,加到 0000) 例如输出: E_2020_0001 (如果 COUNT = 0) E_2020_0002

但是当我运行代码时出现了一些错误。 mysqli_fetch_assoc() expects parameter 1 to be mysqli_result 需要帮助以及输出结果

<?php
   if(isset($_POST['getCode'])) {
      $connect = mysqli_connect("localhost", "root", "", "sys");

      $year = mysqli_real_escape_string($connect, $_POST['getCode']);

      $sql = "SELECT CAST(CONCAT('E_$year', SUBSTR('0000' , 1, (LENGTH('0000') - LENGTH(CAST(COUNT(1) AS CHAR)))), COUNT(1) + 1) AS CHAR) as numCode FROM es_sys WHERE year = '$year'";  #I wish this can be E_$year_(increment number) but it cannot allow 'E_$year_' as it includes the _ as the variable
      $result = mysqli_query($connect, $sql);
      $row = mysqli_fetch_assoc($result);

      echo $row['numCode'];
   }
?>

标签: phpmysqli

解决方案


我无法正确理解您的问题,但我会为您提出一些建议。“mysqli_fetch_assoc() 期望参数 1 为 mysqli_result”表示连接或查询有问题。我可以看到连接没有错误,所以错误必须在查询中。您可以使用您的 sql 编辑器键入该查询并查看它给出了预期的输出。然后如果它给出了预期的输出,您可以将其复制到 php 代码中。如果不能,请分享您的数据库详细信息('es_sys') 所以这将有助于正确回答。


推荐阅读