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

Форум PHP

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

 

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

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

тема: Обрезается текст при занесении в базу
 
 автор: OLi   (15.03.2011 в 23:33)   письмо автору
 
 

Запрос такой
$result = mysql_query("insert into products set title='$nm', pod_cat='$pod_cat', cat='$cat', preimush='$dost', text_opis='$opis'");



Форма такая:
<form action=\"#\" method=\"post\">
Категория <select name=\"cat\" size=\"1\"><option value='1'>Отделочные работы</option></select>
Продукция <select name=\"pod_cat\" size=\"1\"><option value='3'>Жидкие обои</option>
<option value='4'>Мраморный пластер</option>
<option value='5'>Декорат. и венец. штукат</option>
<option value='1'>Краски с эффектами</option>
<option value='2'>Чипсы</option>
<option value='7'>Тинк</option>
<option value='10'>Багеты</option>
<option value='11'>Трафареты</option>
<option value='12'>Пробк. поверх</option>


</select><br />

Название: <input type=\"text\" name=\"nm\" /><br />

Описание: <textarea name=\"opis\" ></textarea><br />

Достоинства: <textarea name=\"dost\" ></textarea><br />
<input type=\"submit\" name=\"sub\" value=\"Добавить\" />
</form>


В базу залетает обрезанный текст с полей textarea
такой:

  Ответить  
 
 автор: cheops   (15.03.2011 в 23:38)   письмо автору
 
   для: OLi   (15.03.2011 в 23:33)
 

Какой тип полей в таблице products? Такая ситуация часто имеет место, когда выбирается короткий тип, вроде TINYTEXT, который хранит только 255 символов.

  Ответить  
 
 автор: OLi   (15.03.2011 в 23:51)   письмо автору
 
   для: cheops   (15.03.2011 в 23:38)
 

Тип text - не должно возникнуть проблем

  Ответить  
 
 автор: cheops   (16.03.2011 в 11:32)   письмо автору
 
   для: OLi   (15.03.2011 в 23:51)
 

Я заметил в запрос у вас подставляются переменные, а не элементы массива $_POST. Вероятно данные проходят какую-то обработку перед помещением в базу данных. Можно на неё взглянуть? Может дело в этой обработке? Чтобы удостоверится в этом, выведите дамп массива $_POST, в нем данные нормальные?
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>
А также сам SQL-запрос
<?php
  
echo "insert into products set title='$nm', pod_cat='$pod_cat', cat='$cat', preimush='$dost', text_opis='$opis'";
?>
В нем данные нормальные или тоже обрезанные?

  Ответить  
 
 автор: OLi   (16.03.2011 в 19:59)   письмо автору
 
   для: cheops   (16.03.2011 в 11:32)
 

Обработки никакой нету, лишь проверка на isset
Вот что получил при выводе запроса:



insert into products set title='Жидкие обои', pod_cat='3', cat='1', preimush='
цкцкц оцщшеоц щ дцш шщцтешц щтешщц ещшцт щшетцш ещшцтщш етцш ецт шет 6

', text_opis='
ацукацк щцткщш тк цкщш щшцщкцт шкц к к5

'

Данные не обрезаны, но в базе фигня какая-то....

  Ответить  
 
 автор: OLi   (16.03.2011 в 20:04)   письмо автору
 
   для: OLi   (16.03.2011 в 19:59)
 

В поле title вообще ничего не летит...

  Ответить  
 
 автор: OLi   (16.03.2011 в 20:12)   письмо автору
 
   для: OLi   (16.03.2011 в 20:04)
 

Вывод print_r

Array
(
[cat] => 1
[pod_cat] => 3
[nm] => Жидкие обои
[opis] =>
Я заметил в запрос у вас ?


[dost] =>
Я заметил в запрос у вас ?


[sub] => Добавить
)

Странно еще то что текст "Я заметил в запрос у вас ?" я оформлял в теги <b> которые нету в выводе print_r

  Ответить  
 
 автор: cheops   (16.03.2011 в 20:30)   письмо автору
 
   для: OLi   (16.03.2011 в 20:12)
 

>Странно еще то что текст "Я заметил в запрос у вас ?" я оформлял в теги <b> которые нету в
>выводе print_r
Это как раз нормально - они интерпретируются, правда в браузере у вас и строка должна быть жирным выделена.

  Ответить  
 
 автор: cheops   (16.03.2011 в 20:29)   письмо автору
 
   для: cheops   (16.03.2011 в 11:32)
 

А поместите еще результат запроса (чтобы не думать на таблицу)
SHOW CREATE TABLE products;

PS Триггеры никакие в базе данных не используете?

  Ответить  
 
 автор: OLi   (16.03.2011 в 21:43)   письмо автору
 
   для: cheops   (16.03.2011 в 20:29)
 

Что это дает? Выполнил - echo $v=mysql_query("SHOW CREATE TABLE products");
Resource id #10

  Ответить  
 
 автор: cheops   (16.03.2011 в 22:04)   письмо автору
 
   для: OLi   (16.03.2011 в 21:43)
 

Результат получите - что он выводит?
<?php
  $v
=mysql_query("SHOW CREATE TABLE products");
  if(!
$v) exit("Ошибка выполнения запроса - ".mysql_error());
  echo 
"<pre>";
  echo 
mysql_result($v0);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: OLi   (16.03.2011 в 22:42)   письмо автору
 
   для: cheops   (16.03.2011 в 22:04)
 

Вывело лишь products

  Ответить  
 
 автор: cheops   (16.03.2011 в 23:00)   письмо автору
 
   для: OLi   (16.03.2011 в 22:42)
 

Ясно, тогда модифицируйте код так
<?php 
  $v
=mysql_query("SHOW CREATE TABLE products"); 
  if(!
$v) exit("Ошибка выполнения запроса - ".mysql_error()); 
  
$arr mysql_fetch_array($v);
  echo 
"<pre>"
  echo 
$arr['Create Table']; 
  echo 
"</pre>"
?>

  Ответить  
 
 автор: OLi   (17.03.2011 в 00:56)   письмо автору
 
   для: cheops   (16.03.2011 в 23:00)
 

Результат:

CREATE TABLE `products` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`cat` int(255) NOT NULL,
`title` varchar(255) COLLATE utf8_bin NOT NULL,
`text_opis` text COLLATE utf8_bin NOT NULL,
`img` varchar(255) COLLATE utf8_bin NOT NULL,
`cena` varchar(255) COLLATE utf8_bin NOT NULL,
`date` varchar(255) COLLATE utf8_bin NOT NULL,
`new` int(255) NOT NULL,
`pod_cat` int(255) NOT NULL,
`preimush` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

  Ответить  
 
 автор: OLi   (17.03.2011 в 09:39)   письмо автору
 
   для: OLi   (17.03.2011 в 00:56)
 

Ребята, что подскажете?

  Ответить  
 
 автор: cheops   (17.03.2011 в 12:41)   письмо автору
 
   для: OLi   (17.03.2011 в 09:39)
 

Если взять SQL-запрос, который выводится в PHP и выполнить его в phpMyAdmin, он вствялется без искажений?

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

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