嘿,我正在运行php mysqli查询:
<?php do { echo $row['depicao']; ?>-<?php } while ($row = mysqli_fetch_array($query)); ?>
我需要的结果应该显示以下内容
data-data2-data3-data4等。
然而,我所看到的是:
-data-DATA2-DATA3-DATA4
我怎样才能得到&#34; - &#34;不是第一个结果?
我尝过这个但是得到了相同的结果。
<?php do { echo $row['depicao']; echo'-'; ?><?php } while ($row = mysqli_fetch_array($query)); ?>
由于
答案 0 :(得分: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
&#39; em:
$values = [];
while ($row = mysqli_fetch_array($query)) {
$values[] = $row['depicao'];
}
echo implode('-', $values);
答案 1 :(得分:0)
尝试使用while循环而不是do-while。
<?php while($row = mysqli_fetch_array($query)) { echo $row['depicao'];echo'-';} ?>
do while的问题是即使条件失败也至少执行一次。因此,即使没有评估条件,也会在开头打印一个“ - ”。
如果目标只是删除额外的“ - ”,则可以使用 -
完成<?php do { echo $row['depicao']; if($row['depicao']!=null) echo "-"; } while ($row = mysqli_fetch_array($query)); ?>
答案 2 :(得分:0)
使用while循环而不是do ... while
因为当你使用do while循环时,它会一直执行一次,然后它会检查条件,以及为什么你在结果的第一个时候得到-
的原因。
因此使用while循环检查条件,如果为true,则循环下的代码将执行,否则不执行。
我严格建议您学习循环。