У меня есть вопрос PHP / MYsql.
Я пытаюсь вставить новую строку после каждой запятой.
В принципе, я хочу эту функцию:
Допустим, у нас есть текстовое поле со следующим текстом:
Баскетбол, Теннис, Футбол, Волейбол -> Отправить кнопку
После нажатия кнопки «Отправить» я хочу добавить новую строку в одну таблицу после каждого слова.
В принципе, я хочу, чтобы результат в БД
id category 1 Basketball 2 Tennis 3 Futbol 4 Volleyball
Кто-нибудь может мне помочь?
благодаря 🙂
Вы можете просто прокручивать каждый и добавлять их по отдельности.
$input = "Basketball, Tennis, Futbol, Volleyball"; foreach (explode(',',$input) as $piece) { $piece = mysql_real_escape_string(trim ($piece)); $sql = "INSERT INTO table VALUES($piece)"; //Run sql }
Вы можете сделать это в одном запросе:
$Input = explode(',', 'a, b, c, d, e, f, g'); $Query = 'INSERT INTO Table(TableColumn) VALUES'; foreach ($Input as $Entry) { $Query .= '("' . $Entry . '"), '; } $Query = substr_replace($Query, '', -2); mysql_query($Query);
Выведенный запрос будет выглядеть так:
INSERT INTO Table(TableColumn) VALUES("a"), ("b"), ("c"), ("d"), ("e"), ("f"), ("g")
Это то, что вы ищите ??
Просто возьмите значения из супер-глобального массива GET / POST / REQUEST:
$categories = $_REQUEST['categories'];
Сделайте их отдельными значениями:
$categories = explode(",", $categories);
Для каждого значения в массиве создайте оператор SQL и выполните его.
foreach($categories as $category) { $category = trim($category); // Remove possible whitespace $sql = "INSERT INTO table (category) VALUES ('%s')"; $sql = sprintf($sql, mysql_real_escape_string($category)); mysql_query($sql); }
Самый короткий код:
$Input = explode(',', 'a, b, c, d, e, f, g'); if($Input){ echo('INSERT INTO Table(TableColumn) VALUES ("'. implode('"),("',$Input).'")'); }
.$Input = explode(',', 'a, b, c, d, e, f, g'); if($Input){ echo('INSERT INTO Table(TableColumn) VALUES ("'. implode('"),("',$Input).'")'); }
Однако вам нужно, чтобы ваш $ Input сбежал.