Вывод значений через запятую в таблицу 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);
}
