这可能已被提出并已经回答过,但我找不到适用于我想做的解决方案。我需要确定mysqli_fetch_assoc($ result)创建的关联数组的结尾。我的代码是:
$query = "SELECT * " .
"FROM songs;";
$result = mysqli_query($connection, $query);
$number = mysqli_num_rows($result);
while($row = mysqli_fetch_assoc($result)){
if($number !== 0){
echo "{'title':'" .$row['song_name'] .
"'file':'" . $row['song_path'] . "'},<br /><br />";
} else {
echo "{'title':'" .$row['song_name'] .
"','file':'" . $row['song_path'] . "'}<br /><br />";
}
$number--;
}
有人请告诉我我做错了什么。我想要做的是回显“if”语句的第一部分,如果行是数组中的最后一行,我想要回显“在两个break标记之前没有逗号的行。”它返回所有数据库中的行,但是如果它是数组的末尾,我就无法删除逗号。我有一段时间的鲸鱼。我知道这可能很简单,但我是PHP的新手它让我陷入困境。请帮助!
答案 0 :(得分:1)
你能试试吗,
$i=1;
while($row = mysqli_fetch_assoc($result)){
$comma =",";
if($i==$number){
$comma ="";
}
echo "{'title':'" .$row['song_name'] .
"'file':'" . $row['song_path'] . "'}".$comma."<br /><br />";
$i++;
}
答案 1 :(得分:0)
你应该试试
...
if($number > 1){
...
或者你可以这样做
...
$json = '';
while($row = mysqli_fetch_assoc($result)){
$json .= "{'title':'" .$row['song_name'] .
"'file':'" . $row['song_path'] . "'},";
}
if(strlen($json) > 0)
$json = substr($json,0, strlen($json)-1);
echo $json;
答案 2 :(得分:0)
在一行结束后使用$ number--所以在处理完所有行后$ number将等于0。所以你需要做的就是在所有if子句
之前加上$ number-- while($row = mysqli_fetch_assoc($result)){
$number--;//move to here
if($number !== 0){
echo "{'title':'" .$row['song_name'] .
"'file':'" . $row['song_path'] . "'},<br /><br />";
} else {
echo "{'title':'" .$row['song_name'] .
"','file':'" . $row['song_path'] . "'}<br /><br />";
}
//$number--; moved up
}
现在它应该有效!! :)