|
|
|
| Здравствуйте.
Подскажите как можно реализовать такую штуку:
Имеется поле textarea, в него записываются слова (каждое слово на новой строке).
потом необходимо каждое слово записать в таблицу.
сколько слов неизвестно.
Пример (textarea):
slovo1
slovo2
slovo3
...
Пример (таблица):
id | text
1 | slovo1
2 | slovo2
3 | slovo3
... | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:23)
| | Для начала стоит попытаться эти слова поместить в массив.
Потом попробовать составить соответствующий SQL-запрос. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2009 в 13:27)
| | ну здесь надо циклом записывать эти слова в базу, но вот как различить сколько и где какое слово?
Да и как вообще этот цикл составить?
что-то я запутался совсем ( | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:29)
| | как я понял необходимо использовать explode | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:36)
| | совершенно верно. | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:29)
| | Можно циклом.
Можно через array_map()
Попробуйте написать пример текста запроса. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2009 в 13:40)
| | вот пока на ум пришло только такое, но незнаю будет ли оно работать.
вопрос в том, как подсчитать кол-во строк.
<?
// соединение с базой данных
if(!@$_POST['add']){
echo '<form action="" method="post">
<textarea name="text" cols="20" rows="10"></textarea><br/>
<input name="add" type="submit" value="Ok" >
</form>';
}else{
$text = $_POST['text'];
$text = explode("\r\n" ,$text);
$count = ; // тут как-то надо сделать подсчет всех слов, т.е. строк
$i = 0;
while($i <= $count){
mysql_query("INSERTY INTO ('text') VALUES ('$text[$i]')");
$i++;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:57)
| | mysql_escape_string() забыли применить. | |
|
|
|
|
|
|
|
для: Trianon
(10.08.2009 в 13:58)
| | ну это я для примера написал, поэтому не применял ничего подобного. | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:57)
| |
$text = mysql_escape_string($_POST['text']);
$text = explode("\r\n" ,$text);
$count = count($text);
|
| |
|
|
|
|
|
|
|
для: neadekvat
(10.08.2009 в 14:00)
| | Вместо функции mysql_escape_string() следует использовать функцию mysql_real_escape_string()!
mysql_real_escape_string() принимает дескриптор соединения в качестве своего первого аргумента и экранирует строку в соответствии с текущей кодировкой. Функция mysql_escape_string() не требует параметров соединения в качестве аргумента и не учитывает установки текущей кодировки. | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:57)
| | блин. опять я сам на свой вопрос ответил :)
функция count для этого.
не доспал я... :) | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 14:03)
| | Count Вам не нужен.
По большому счету, не нужен даже цикл.
$sql = "INSERT INTO `tbl` (`text`) VALUES('". implode("','", array_map(explode('\r\n', $text), 'mysql_escape_string')). "')";
|
| |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:57)
| | между прочим, у Вас синтаксические ошибки в SQL-коде.
нет имени таблицы, некорректно ограничены имена полей. | |
|
|
|
|
|
|
|
для: Almaz
(10.08.2009 в 13:29)
| | -Уже назвали- | |
|
|
|
|
|
|
|
для: neadekvat
(10.08.2009 в 13:40)
| | всем спасибо, все работает, темку можно закрыть. | |
|
|
|