无法打印表格中的所有行和列

时间:2016-03-28 21:30:12

标签: php sql select mysqli

这可能是一个简单的问题。

我有这张桌子:

Table Image

bairro =邻里/ preco =价格

这是一张价格参考表。

我试图用附近和价格打印一张桌子,但是我不喜欢这样做:

ProblematicTable

正如大家们所看到的,每个值都被打印了3次!

代码是这样的:

    function getInfo()
    {
      $this->sql = "SELECT * FROM deliverypricestable";

      $this->query = $this->mysqli->query($this->sql);

      while($this->result = $this->query->fetch_assoc())
      {
        foreach ($this->result as $key)
        {
            echo "<tr><td>".$this->result["bairro"]."</td>";//neighborhood
            echo "<td>".$this->result["preco"]."</td></tr>";//price
        }
    }

我知道这个问题可能与deliverypricestable上的专栏数量有关,但我只是学习编码,而且丢失了,请帮助我!

2 个答案:

答案 0 :(得分:0)

function getInfo()
{
$query = "SELECT * FROM deliverypricestable";

if ($result = $mysqli->query($query)) {

/* fetch associative array */
while ($row = $result->fetch_assoc()) {
    echo "<tr><td>".$query->result["bairro"]."</td>";//neighborhood
    echo "<td>".$query->result["preco"]."</td></tr>";//price);
}

/* free result set */
$result->free();
}

/* close connection */
$mysqli->close();
}

您可能会发现 - http://php.net/manual/en/mysqli.query.php - 对于您要执行的操作的文档非常有用。

答案 1 :(得分:-1)

没有理由循环两次。当有一个新行时,while循环将执行。此新行存储在$this->result

function getInfo()
{
    $this->sql = "SELECT * FROM deliverypricestable";
    $this->query = $this->mysqli->query($this->sql);

    while($this->result = $this->query->fetch_assoc()) {
        echo "<tr><td>".$this->result["bairro"]."</td>";//neighborhood
        echo "<td>".$this->result["preco"]."</td></tr>";//price
    }
}

您的代码正在循环遍历所有行,然后对于每一行,您循环遍历属于该行的所有键(列)。您有3列,因此对于每一行,您将打印3次值。