Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 13:53   #1
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию Проблемма с выводом больших текстов из mySQL

Здравствуйте!
Создал БД, в поле desc (LONGTEXT, notnull) заливаю тексты. Тексты большие, скок знаков не считал (законодательство РФ). Так вот, из таблицы не выводит текст... в некоторых случаях выводит около 300 знаков, а в некоторых пустая страница. Подскажите пожалуйста, в чем тут дело? Пожет какие то еще атрибуты нужны для поля desc?
Вывожу так:
Код:
<?
$pagename="$_REQUEST[a]";
?>
<?
include ("config.php"); 
$query ="SELECT * FROM zakon where title='".$_REQUEST['a']."'";
$result=mysql_query($query);
$r=mysql_fetch_array($result);
echo $r[title]; 
echo $r[desc];
mysql_close($link);
?>
Оказывается, что текст передается не весь в базу. Отправляю с помощью формы
Код:
Добавить закон:<br> 
<form name="add_news" enctype="multipart/form-data" method="post" action="news.php">
Выбрать принадлежность закона к категории: <select name='name'>
<option value='0'></option> 
<option value='1'>Конституция</option> 
<option value='2'>Гражданское право</option>
<option value='3'>Оборона и милиция</option>
<option value='4'>Международное право</option>
<option value='5'>Налоги и сборы</option>
<option value='6'>Учет и отчетность</option>
<option value='7'>Таможня и валюта</option>
<option value='8'>Банк и ценные бумаги</option>
<option value='9'>Научная деятельность</option>
<option value='10'>Предпринимательство</option>
<option value='11'>Транспорт и связь</option>
<option value='12'>Охрана среды</option>
<option value='13'>Законы о лесе</option>
<option value='14'>Законы о воде</option>
<option value='15'>Законы о земле</option>
<option value='16'>Законы о жилье</option>
<option value='17'>Социальная защита</option>
<option value='18'>Страхование</option>
<option value='19'>Законы о труде</option>
<option value='20'>Пенсии и пособия</option>
<option value='21'>Культура</option>
<option value='22'>Образование</option>
<option value='23'>Законы о семье</option>
<option value='24'>Здравохранение</option>
<option value='25'>Моральное право</option>
<option value='26'>Уголовное судопроизводство</option>
<option value='27'>Арбитражное судопроизводство</option>
<option value='28'>Процессуальное судопроизводство</option>
<option value='29'>Административное судопроизводство</option>
</select><br/>
 
Название:<br/>

<textarea name="title" wrap="on" rows="5" cols="100"></textarea><br/>


Текст:<br/>

<textarea name="desc" wrap="on" rows="50" cols="130"></textarea><br/>

<input type="submit" value="Добавить" /> 
</form>
Обработчик формы:
Код:
<?  

include ('config.php');
$table = "zakon";  
$name = mysql_escape_string( $_POST['name'] ); 
$title = mysql_escape_string( $_POST['title'] );
$desc = mysql_escape_string( $_POST['desc'] ); 
 

if($title != '' AND $desc != '')
{ 
if (! $err){
/*Выполняем скрипт дальше*/ 
/* Составляем запрос для вставки информации в таблицу  
name...date - название конкретных полей в базе;  
в $_POST["title"]... $_POST["desc"] - в этих переменных содержатся данные, полученные из формы */  

$title = mysql_escape_string( $_POST['title'] ); 
$desc = mysql_escape_string( $_POST['desc'] ); 
$query = "INSERT INTO $table VALUES (NULL, '".$name."', '".$title."', '".$desc."')";  

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */  
mysql_query($query) or die(mysql_error()); 

}
else
{ 
$err = 'Вы заполнили не все поля!'; 
}

} 


/* Закрываем соединение */  
mysql_close();  

/* В случае успешного сохранения выводим сообщение и ссылку возврата */  
echo "Данные успешно сохранены!";  
echo "<html><head>
    <meta  http-equiv='Refresh' content = '0; URL =add_news.php'>
 </head></html>";
exit ();


?>
Что нужно сделать, что бы большие тексты отправлялись?

Последний раз редактировалось Андрей79; 05.08.2009 в 14:24.
Андрей79 вне форума Ответить с цитированием
Старый 05.08.2009, 14:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
rows="50" cols="130"
Мож побольше строк сделать? (это предположение)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2009, 15:02   #3
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мож побольше строк сделать? (это предположение)
ФЗ... Текст то весть в поле отображен... просто полоса прокрутки появляется, если текст больше поля. Пойду попробую...



Точняк, получилось. Блин, это ж какое поле мне нужно делать??? А тексты то разные, один больше, другой меньше.. Может есть какое решение?

Последний раз редактировалось Андрей79; 05.08.2009 в 15:09.
Андрей79 вне форума Ответить с цитированием
Старый 05.08.2009, 16:44   #4
Андрей79
Пользователь
 
Регистрация: 15.02.2009
Сообщений: 63
По умолчанию

Что то не хочет работать... Половину данных не выводит - пустое окно.
Может кто подскажет?
Вывод делаю следующим обрзом - при переходе по ссылке, идет выборка данных со значением поля name=1
PHP код:
<? 
include ("config.php"); 

$query="SELECT * FROM zakon WHERE name=1"
$result=mysql_query($query); 

while(
$r=mysql_fetch_array($result)) 

echo 
'<a href="window.php?a='.$r["title"].'" target="_blank">'.$r["title"].'</a><br>'
mysql_close(); 
?>
Выводятся значения поля title в виде ссылок. Ссылка открывается с помощью файла window.php и вы нем выводятся нужные поля.
PHP код:
<?
$pagename
="$_REQUEST[a]";
?>
<?
include ("config.php"); 
$query ="SELECT * FROM zakon where title='".$_REQUEST['a']."'";
$result=mysql_query($query);

$r=mysql_fetch_array($result);

echo 
$r[title]; 
echo 
$r[desc];
mysql_close($link);

?>
при переходе по некоторым ссылкам вообще ничего не выводит, ни ошибки нет. Пустой экран...

вот ссылка с примером http://na-deltolete.ru/konstitution.php

Последний раз редактировалось Андрей79; 05.08.2009 в 16:46.
Андрей79 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срочно нужна программа транслитерации текстов на С++ enna Общие вопросы C/C++ 1 11.06.2009 20:14
Проблемма с выводом надписи при нажатии на кнопку prikolist Общие вопросы C/C++ 6 06.02.2009 16:11
Чтение текстов голосом Chi Софт 4 19.10.2008 14:07
Сравнение текстов на схожесть PUH Общие вопросы Delphi 7 21.02.2008 22:18