У меня вопрос о петле, если у меня есть. В настоящее время мой код выглядит так:
$rtitle = "SELECT title FROM table WHERE genre='$category'"; $ptitles = mysqli_query($connection,$rtitle) or die(mysqli_error($connection)); while ($title2 = mysqli_fetch_object($ptitles)); printf('"name": "%s",', $title2->title);
Как вы можете видеть в последней строке, после заголовка печатается запятая. Тем не менее, я хочу, чтобы последняя запись не имела запятой в конце.
В настоящее время я думаю о том, какие варианты использовать для этого. Я думаю, что утверждение if, однако, я не уверен, как я мог бы сформулировать цикл if, чтобы проверить, что последнее включено. Я рассмотрел использование счетчика, однако я не уверен, насколько хорошо это работает. Поскольку у меня есть несколько таких циклов, которые зависят друг от друга, я бы хотел, чтобы это продолжалось, если это возможно.
Есть ли у кого-нибудь предложения для хорошего подхода (если у кого-то есть пример, который был бы замечательным)? Спасибо заранее!
Вы можете использовать встроенную функцию PHP:
string implode ( string $glue , array $pieces ) Join array elements with a glue string.
php.net/manual/en/function.implode.php
$names = array(); while ($title2 = mysqli_fetch_object($ptitles)) { $names[] = sprintf('"name": "%s"', $title2->title); } echo implode(',', $names);
Вы можете нажать заголовок в массив на каждой итерации, а затем просто взорвать массив после цикла:
echo implode(',', $array);