php - 在mysql上显示单个结果

标签 php mysql arrays

如何使用此代码仅获得 1 个结果?我试图计算我们可以在表中找到每个“ double ”的次数。数据库连接没有任何问题,它只得到重复的值作为结果。谢谢。

The output should be like

    DOUBLE       COUNT
    01 02          10 (as example)
    03 04          12 (as example)

    I am getting duplicated like...

    01 02          10 (as example)
    01 02          10 (as example)


<?php

if ($check == 'doubles'){

   sort($doubles);

   foreach ($doubles as $double) {

        explode(" ", $double);

        $dn1 = $double[0].$double[1];
        $dn2 = $double[2].$double[3];

if ($stmt = $post_con->prepare('SELECT DISTINCT FROM tb WHERE CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %") AND CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %")')) {

       $stmt->bind_param("ss", $dn1, $dn2);

       $dn1 = sprintf('%02d', $dn1);
       $dn2 = sprintf('%02d', $dn2);

       $stmt->execute();
       $stmt->store_result();
       $qty = $stmt->num_rows;

       echo '<div class="mini">'.$dn1.'</div>';
       echo '<div class="mini">'.$dn2.'</div>';
       echo '<div class="n-sort">'.$qty.'</div>';


        }


}
?>

最佳答案

很难准确匹配您的问题,因为我们不知道您的表结构(特别是 res 字段内容),但我肯定认为这部分代码存在问题:

explode(" ", $double);

$dn1 = $double[0].$double[1];
$dn2 = $double[2].$double[3];

$double采用01 02的值时,您将其分解为['01','02'],但是您不要捕获分解的数组。

然后,您使用的语法与分解数组和原始字符串都不兼容。连接后,您将得到以下结果:

$double = '01 02';
# index >  01234
$dn1 = '01';
$dn2 = ' 0';

按如下方式替换原来的代码:

$exploded = explode(" ", $double);
$dn1 = $exploded[0];
$dn2 = $exploded[1];

或者这样:

<s>explode(" ", $double);</s>
$dn1 = $double[0].$double[1];
$dn2 = $double[3].$double[4];

关于php - 在mysql上显示单个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36559645/

相关文章:

php - 如何在 woocommerce 后端通过运输方式实现过滤器?

mysql - 查找日期位于开始日期和结束日期之间(可以为空)的 Hibernate 实体

javascript - 使用字符串变量的值作为 JavaScript 中现有对象的 'index'

c - 如何从函数返回一个二维数组到主函数,并将其保存在另一个数组中?

arrays - 如何使用索引在数组类型中递增 std_logic_vector?超高清描述语言

php - 通过表单更新 JSON?

PHP:从路径中删除文件名

php - Pear - 成功,但它不是有效的包

jquery - 无法从数据库获取记录并通过ajax加载到 View 中

mysql - 分组连接以包含相应的数据