Добавить новую строку в MYSQL из текста через запятую - PullRequest
1 голос
/ 17 апреля 2011

У меня вопрос по PHP / MYsql.

Я пытаюсь вставить новую строку после каждой запятой.

По сути, я хочу эту функцию:

Допустим, у нас есть текстовое поле со следующим текстом:

Баскетбол, Теннис, Футбол, Волейбол -> Кнопка «Отправить»

После нажатия кнопки «Отправить» я хочу вставить новую строку в одну таблицу после каждого слова.

В основном, Я хочу, чтобы результат в БД был таким

id      category
1       Basketball
2       Tennis
3       Futbol
4       Volleyball

Кто-нибудь может мне помочь с этим?

спасибо :)) 1018 *

Ответы [ 5 ]

5 голосов
/ 17 апреля 2011

Вы можете просто просмотреть каждую из них и добавить их по отдельности.

$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
}
1 голос
/ 17 апреля 2011

Вы можете сделать это в одном запросе так:

$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")
0 голосов
/ 17 апреля 2011

Кратчайший код:

$Input = explode(',', 'a, b, c, d, e, f, g');
if($Input){
    echo('INSERT INTO Table(TableColumn) VALUES ("'.
      implode('"),("',$Input).'")');
} 

Тем не менее, вам потребуется экранирование от $ Input.

0 голосов
/ 17 апреля 2011

Просто возьмите значения из суперглобального массива 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);
}
0 голосов
/ 17 апреля 2011

Это то, что вы ищете ??

http://php.net/manual/en/function.fgetcsv.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...