Вывод значений через запятую в таблицу MYSQL

Имеется таблица куда добавляются id товаров через запятую

Проблема в том, что первый id добавляется с запятой перед самим id

Нужно что-бы если это первый id добавляется то добавлялся без запятой а дальше уже с запятыми...

Чтобы было по типу 1,2,3

А в данный момент ,1,2,3

Код:

$areasuder = $userdata[$chatId]['products'];
$new = $areasuder.",".$id_t;
$sqladd = "UPDATE `kura` SET `products` = '$new' WHERE `kura`.`id` = '$chatId';";
$conn->query($sqladd);

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Solt

Надо проверять на пустоту и не добавлять запятую, например так.

Только будьте осторожны, в вашем коде если данные приходят с улицы, возможны инъекции, хотя бы заверните $id_t в escape_string.

$areasuder = $userdata[$chatId]['products'];

$id_t=$conn->real_escape_string($id_t);
//Если id всегда число, защититься можно просто приведением строки к числу
//$id_t+=0;

//Ищем вхождения id с учётом разделителей
//ибо простой поиск подстроки может найти 2 например в 123
if(!preg_match("/(^|,)$id_t(,|$)/",$areasuder)){
    //Лишние переменные тоже не нужны
    $areasuder.=($areasuder ? '':',').$id_t;
    $sqladd = "UPDATE `kura` SET `products` = '$areasuder' WHERE `kura`.`id` = '$chatId'";
    $conn->query($sqladd);
}

→ Ссылка