PHP/MySQL 查询/循环

标签 php mysql arrays loops

我有一个具有以下结构的数据库:

<table border="2">
      <tbody>
        <tr>
          <td>ID</td>
          <td>numbering</td>
          <td>country</td>
          <td>operator</td>
          <td>rate</td>
        </tr>
        <tr>
          <td>1</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator1</td>
          <td> </td>
        </tr>
        <tr>
          <td>2</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator1</td>
          <td> </td>
        </tr>
        <tr>
          <td>3</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator1</td>
          <td> </td>
        </tr>
        <tr>
          <td>4</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator2</td>
          <td> </td>
        </tr>
        <tr>
          <td>5</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator2</td>
          <td> </td>
        </tr>
        <tr>
          <td>6</td>
          <td>12345</td>
          <td>country1</td>
          <td>operator2</td>
          <td> </td>
        </tr>
      </tbody>
    </table>

我首先根据用户选择的国家查询运营商,并显示它们,但我还想为每个运营商显示相应的一组编号。这是我到目前为止实现的代码:

<?php
    $operator_rates= $wpdb->get_results("SELECT DISTINCT operator, rate FROM database WHERE country='$_GET[country]'");
            foreach ( $operator_rates as $operator_rate ) {
                $numbering = $wpdb->get_results("SELECT numbering FROM database");
                echo '
                <strong>'.$operator_rate->operator.'</strong><br/>'.$numbering;
            } ?>

我得到的结果如下:

运算符 1
数组 运算符 2
数组 运算符3
数组

我期望的结果是每个运算符都在其下方,每个运算符的编号集如下:

运算符(operator) 1
12345, 12345, 12345, 12345

运算符(operator) 2
12345, 12345, 12345, 12345

运算符(operator) 3
12345, 12345, 12345, 12345

最佳答案

$numbering 是一个数组,因为你正在使用 $wpdb->get_results 所以你需要像这样使用 join

foreach ($operator_rates as $operator_rate) {
    $numbering = $wpdb->get_results("SELECT numbering FROM melitawordpress.prepaid_telephony_rates");
    echo '
                <strong>' . $operator_rate->operator . '</strong><br/>';
    $numbers = array();
    foreach ($numbering as $number) {
        $numbers[] = $number->numbering;
    }
    echo join(", ", $numbers) . "<br />";
}

编辑:$wpdb->get_results 返回对象。

关于PHP/MySQL 查询/循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522560/

相关文章:

php - 如何更改 Yii2 中所有 Controller 的默认布局?

php - 有效地从数据库下拉列表中获取值

java - 通过将二维数组复制到一维数组来对二维数组进行排序,输出正确,但迭代重复

c - C 数组中的最小值、最大值和位置

Java - 多态性问题

php - 无法在 mysql 中存储日期和时间戳值

php - Laravel voyager - 需求无法解决

php - PDO关于LIMIT的bindParam问题

mysql - 系统数据捕获到数据库

MySQL 查询等于列名