Запятая в цикле

peretc001

Новичок
Добрый день.

Помогите, не знаю как вставить запятую в цикл, чтоб последний был без запятой:

Код:
"items": [
        <?php $cart = mysql_query("SELECT * FROM flocktory WHERE sid = '". session_id() ."' ORDER BY id asc");
        while($row = mysql_fetch_assoc($cart)) { ?>
        {
          "id":      "<?php echo $row['model']; ?>",
          "title":    "<?php echo $row['name']; ?>. Цвет: <?php echo $row['color']; ?>",
          "price":    "<?php echo $row['price']; ?>",
          "image":    "http://www.partadami.ru<?php echo $row['img']; ?>",
          "count":    "<?php echo $row['qty']; ?>"
        },
      <?php } ?>
Выводиться должно так:
Код:
"items": [
                {
          "id":      "СУТ 14-02",
          "title":    "Парта ДЭМИ (ДЕМИ) 75х55 см + Полка сзади 75х25 см + Полка сбоку 75х25 см + Стул. Цвет: Клен / Зеленый",
          "price":    "10600",
          "image":    "http://www.partadami.ru/shop/img/14-02/4.png",
          "count":    "1"
        }, // Здесь нужна запятая, если текущий товар не последний в списке.
              {
          "id":      "Замша",
          "title":    "Чехол на стул ЗАМША. Цвет: Зеленый",
          "price":    "1300",
          "image":    "http://www.partadami.ru/shop/img/cyt04/4.png",
          "count":    "1"
         }, // Здесь нужна запятая, если текущий товар не последний в списке.
              {
          "id":      "ННС",
          "title":    "Силиконовая накладка на парту. Цвет: Прозрачный",
          "price":    "800",
          "image":    "http://www.partadami.ru/shop/img/dop1/1.png",
          "count":    "1"
        }, // А Здесь НЕ нужна!!!
            
      ]
 

peretc001

Новичок
Я такое не понимаю. Я как то делал, но забыл.
Подсчитывал количество записей в БД
Код:
$res = mysql_query("SELECT COUNT(id) FROM table WHERE sid = '". session_id() ."' ");
        $row = mysql_fetch_row($res);
        $count = $row[0]; // всего записей
Получаем количество записей.
После этого заносим в цикл for как то так:
Код:
for ($i=0; $i<$count; $i++) echo ",";
 

peon

Lok'tar ogar
я бы записал в переменную и сделал rtrim($json, ',')
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
собери в массив и выведи json_encode

но вообще те браузеры, которым такая запятая мешает, давно вымерли (если, конечно, это парсится не как json, а как js)
 

Вурдалак

Продвинутый новичок
vasinsky, я понимаю, когда оффтопят ради троллинга. Троллинг — это святое. А когда оффтопят, чтобы показать свою лысину — это уже из ряда вон.
 

Breeze

goshogun
Команда форума
Партнер клуба
ну раз так, то еще join() не упомянули :D
перестань плодить сущности =)

магический if поможет.
запятую можно ставить не после, а перед элементом, тогда знание количества по барабану.
Страдивари удавится от зависти.
 

vasinsky

Новичок
PHP:
  //Типа - твоя выборка из БД
  $arr = array(
    'a'=>range(0,4),
    'b'=>range(0,4),
    'c'=>range(0,4)
  );

  //типа это ты в while()
  foreach($arr as $k=>$v){
      //ты тут строкуи клеел, а я массив собираю
      $json[] = "{'".$k."':[".implode(',', $v)."]}";
  }

  // получился $json - массив вида
  //Array
  //(
  //  [0] => ['a':{0,1,2,3,4}]
  //  [1] => ['b':{0,1,2,3,4}]
  // [2] => ['c':{0,1,2,3,4}]
  //)

  $full_json = 'items: ['.implode(',',$json).']';
  //items: [{'a':[0,1,2,3,4]},{'b':[0,1,2,3,4]},{'c':[0,1,2,3,4]}]
 

vasinsky

Новичок
peretc001, лан, шутки шутками) не барское это дело Json руками собирать.

сформируй в while - нужный ассоц массив - через json_encode() прогани его

тебе же выше писали вроде уже об этом.
 
Сверху