这可能是一个简单的问题。
我有这张桌子:
bairro =邻里/ preco =价格
这是一张价格参考表。
我试图用附近和价格打印一张桌子,但是我不喜欢这样做:
正如大家们所看到的,每个值都被打印了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上的专栏数量有关,但我只是学习编码,而且丢失了,请帮助我!
答案 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次值。