Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: textarea + запись в базу
 
 автор: Almaz   (10.08.2009 в 13:23)   письмо автору
 
 

Здравствуйте.
Подскажите как можно реализовать такую штуку:

Имеется поле textarea, в него записываются слова (каждое слово на новой строке).
потом необходимо каждое слово записать в таблицу.
сколько слов неизвестно.

Пример (textarea):
slovo1
slovo2
slovo3
...

Пример (таблица):
id | text
1 | slovo1
2 | slovo2
3 | slovo3
...

  Ответить  
 
 автор: Trianon   (10.08.2009 в 13:27)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:23)
 

Для начала стоит попытаться эти слова поместить в массив.
Потом попробовать составить соответствующий SQL-запрос.

  Ответить  
 
 автор: Almaz   (10.08.2009 в 13:29)   письмо автору
 
   для: Trianon   (10.08.2009 в 13:27)
 

ну здесь надо циклом записывать эти слова в базу, но вот как различить сколько и где какое слово?
Да и как вообще этот цикл составить?
что-то я запутался совсем (

  Ответить  
 
 автор: Almaz   (10.08.2009 в 13:36)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:29)
 

как я понял необходимо использовать explode

  Ответить  
 
 автор: Trianon   (10.08.2009 в 13:38)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:36)
 

совершенно верно.

  Ответить  
 
 автор: Trianon   (10.08.2009 в 13:40)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:29)
 

Можно циклом.
Можно через array_map()
Попробуйте написать пример текста запроса.

  Ответить  
 
 автор: Almaz   (10.08.2009 в 13:57)   письмо автору
 
   для: 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++;
}
}
?>

  Ответить  
 
 автор: Trianon   (10.08.2009 в 13:58)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:57)
 

mysql_escape_string() забыли применить.

  Ответить  
 
 автор: Almaz   (10.08.2009 в 14:04)   письмо автору
 
   для: Trianon   (10.08.2009 в 13:58)
 

ну это я для примера написал, поэтому не применял ничего подобного.

  Ответить  
 
 автор: neadekvat   (10.08.2009 в 14:00)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:57)
 

$text = mysql_escape_string($_POST['text']);

$text = explode("\r\n" ,$text); 

$count = count($text);

  Ответить  
 
 автор: t3ma   (10.08.2009 в 15:10)   письмо автору
 
   для: neadekvat   (10.08.2009 в 14:00)
 

Вместо функции mysql_escape_string() следует использовать функцию mysql_real_escape_string()!

mysql_real_escape_string() принимает дескриптор соединения в качестве своего первого аргумента и экранирует строку в соответствии с текущей кодировкой. Функция mysql_escape_string() не требует параметров соединения в качестве аргумента и не учитывает установки текущей кодировки.

  Ответить  
 
 автор: Almaz   (10.08.2009 в 14:03)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:57)
 

блин. опять я сам на свой вопрос ответил :)
функция count для этого.
не доспал я... :)

  Ответить  
 
 автор: Trianon   (10.08.2009 в 14:19)   письмо автору
 
   для: Almaz   (10.08.2009 в 14:03)
 

Count Вам не нужен.
По большому счету, не нужен даже цикл.

$sql = "INSERT INTO `tbl` (`text`) VALUES('". implode("','", array_map(explode('\r\n', $text), 'mysql_escape_string')). "')";

  Ответить  
 
 автор: Trianon   (10.08.2009 в 14:16)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:57)
 

между прочим, у Вас синтаксические ошибки в SQL-коде.
нет имени таблицы, некорректно ограничены имена полей.

  Ответить  
 
 автор: neadekvat   (10.08.2009 в 13:40)   письмо автору
 
   для: Almaz   (10.08.2009 в 13:29)
 

-Уже назвали-

  Ответить  
 
 автор: Almaz   (10.08.2009 в 14:04)   письмо автору
 
   для: neadekvat   (10.08.2009 в 13:40)
 

всем спасибо, все работает, темку можно закрыть.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования