Здравствуйте, я решил в боте магазине добавить доп. вопрос после телефона и До адреса доставки.
Назвал его Способ доставки. там юзер сможет от руки впечатать что он хочет- Курьер, СДЭК или еще что то.
вроде все дописал по аналогии но при вводе ответа на вопрос о способе доставки идет ошибка(((
доп. поле в таблице я добавил вот так- http://prntscr.com/tal9o9
на выходе вот так получается- http://prntscr.com/tambag
1. Метод insertDostavka() - вам не нужен так как я не нашел где у вас он вызывается, в роутере идет вызов на saveDostavkaUser()
2. Вы просите указать определенные компании доставки, при этом у вас бессмысленная проверка на любой символ отправленный пользователем if (preg_match("/./", $text)). Бессмысленный он потому, что пользователю сам Телеграм не позволит отправить пустое сообщение, и отправив любой символ - проверка у вас пройдет. Вы можете жестко указать какие данные вы ждете, например по шаблону ^(СДЭК|ПЭК|DHL)$
3. В методе saveDostavkaUser() у вас переменная $phone до вызова не заполнена и находиться в значении NULL
4. в методе saveAdressUser() в запросе вы выбираете значение phone, а надо по вашей логике dostavka - $dostavka = $this->pdo->prepare("SELECT phone FROM bot_shop_profile WHERE user_id = :user_id");
Ваша ошибка из-за не правильного использования шаблона, он у вас не обрамлен.
В PHP регулярное выражение — это строка, которая начинается и заканчивается символом-разделителем. Все, что находится между разделителями и есть регулярное выражение.
Часто используемыми разделителями являются косые черты “/”, знаки решетки “#” и тильды “~”. Ниже представлены примеры шаблонов с корректными разделителями:
в итоге пошло чуть дальше, теперь у меня после ввода вида доставки (например СДЭК) он присваивается и Типу доставки и адресу сразу- http://prntscr.com/tb1781
На скрине не увидел у вас запроса адреса? Если это вы удалили перед скрином тогда вот:
Всем спасибо за помощь)