2017-06-10 115 views
0

嘿,我运行PHP的mysqli查询:PHP MySQL查询的帮助,结果不是我们所期望的

<?php do { echo $row['depicao']; ?>-<?php } while ($row = mysqli_fetch_array($query)); ?> 

结果我需要应显示如下

数据DATA2,DATA3,DATA4等

但是我所看到的是:

- 数据 - 数据2,数据3,数据4

哪能获得“ - ”不会作为第一个结果出现?

我试过这个,但我得到了同样的结果。

<?php do { echo $row['depicao']; echo'-'; ?><?php } while ($row = mysqli_fetch_array($query)); ?> 

感谢

+0

'do'' $ row'的第一次迭代是__not defined__ –

+0

??查询运行正常,它只是不显示所需顺序的结果。 – user3410094

回答

0

尝试使用while循环,而不是DO-一段时间。

<?php while($row = mysqli_fetch_array($query)) { echo $row['depicao'];echo'-';} ?> 

问题在于即使条件失败,它至少执行一次。因此,即使没有评估条件,也会打印一个“ - ”。

如果目标仅仅是去除多余的 “ - ”,那么它可以与 -

<?php do { echo $row['depicao']; if($row['depicao']!=null) echo "-"; } while ($row = mysqli_fetch_array($query)); ?> 
+0

修复它。非常感谢! – user3410094

+0

然后,您可以将其标记为接受的答案。 – tejasdadhe

+1

仍然有一个“ - ”在末尾 – Rahul

2

做在

do { echo $row['depicao']; ?>-<?php } 
while ($row = mysqli_fetch_array($query)) 

$row得到后第一次迭代定义,而不是之前。这就是为什么 $row['depicao']什么都不输出。如果您在上有error_reporting- 您还会看到通知。

那么,第一个定位是定义$row第一,然后将它输出:

while ($row = mysqli_fetch_array($query)) { 
    echo $row['depicao']; 
    echo '-'; 
} 

但是,在这种情况下,你的输出将与-结束。

所以,解决方案之一是收集数组值和implode“时间:

$values = []; 
while ($row = mysqli_fetch_array($query)) { 
    $values[] = $row['depicao']; 
} 
echo implode('-', $values); 
0

使用while循环,而不是做......而

因为当你使用while循环做会一直执行,然后它会检查条件,这就是为什么你的结果第一次得到-

所以使用while循环来检查条件,如果为true,那么循环中的代码将执行,否则不执行。

我会严格地建议你学习循环。