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

Форум PHP

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

 

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

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

тема: Проблема с выводом данных из базы в форму
 
 автор: narg   (27.12.2005 в 20:43)   письмо автору
 
 

Здраствуйте знатоки програмирования. Прежде всего хочу поздравить Вас с наступающим Новым годом и Рождеством Христовым и пожелать всего наилучшего. А теперь вопрос. Создаю небольшую базу данных, и столкнулся вот с такой проблемой когда вывожу даные на редактирование в форму на веб-странице, если в поле есть два и больше слова то они обрезаются, остаются только первое слово, что я только не делал. Притом проверял что данные из БД выводятся полностью, даже не знаю где копать. Да как пример форму для редактирования, вывода и удаления я взял из Вашего форума.
Заранее благодарен

   
 
 автор: Artemy   (27.12.2005 в 21:44)   письмо автору
 
   для: narg   (27.12.2005 в 20:43)
 

Спасибо!
Приведите, пожалуйста, код формы!

P.S. А может они у Вас уже в БД образанные хранятся?

   
 
 автор: narg   (29.12.2005 в 00:23)   письмо автору
 
   для: Artemy   (27.12.2005 в 21:44)
 

Привожу код формы
В первых строках идет функция разбивки базы на страницы.
<?
$onpage = 1; // записей на страницу
$table = "pr"; // из какой таблицы
include ('config.php');
$page=page();
$result=sql_query($onpage, $page, $table);
while($data=mysql_fetch_array($result))
{
echo '<form action=update.php method=get>';
echo 'Номер: &nbsp;<input type=text name=n value='.$data['n'].'><br />';
echo '<input type=text name=names value='.$data['names'].'>';
echo '<input type=text name=city value='.$data['city'].'>';
echo '<input type=hidden name=id value='.$data['id'].'><br />';
echo '<input type=submit class=butt value="Записати дані">';
echo '</form>';
echo '<form action=delete.php method=post>';
echo '<input type=hidden name=id value='.$data['id'].'>';
echo '<input type=submit class=butt value="Видалити запис">';
echo '</form>';
echo $data['n'];
echo '<br>';
echo $data['names'];
echo '<br>';
echo $data['city'];
echo '<br>';
};
$navigation = navigation($onpage, $page, $table); // определим навигацию
echo $navigation; // выведем ее
mysql_close(); // отключение от БД
?>

а здесь привожу файл config.php может проблема в нем

<?
/*Навігація*/
function page()
{
if(empty($_GET["page"])){
$page = 0;
} else {
if(!is_numeric($_GET["page"])) die("Неправильный формат номера страницы!");
$page = $_GET["page"];
}
return $page;
};

function sql_query($onpage, $page, $table)
{
$begin = $page*$onpage; // откуда начинать
$sql = "SELECT * FROM ".$table." LIMIT ".$begin.", ".$onpage;
$result = mysql_query($sql) or die(mysql_error());
return $result;
};
function navigation($onpage, $page, $table)
{
$return = null;
$count = mysql_query("SELECT COUNT(*) FROM $table") or die(mysql_error());
$count = mysql_fetch_array($count);
$count = $count[0];
$pages = $count/$onpage;
if($page!==0){
$prev = "<A HREF=\"?page=".($page-1)."\">&lt;</A>";
} else {
$prev = "<";
}
if($page<round($pages-1)){
$next = "<A HREF=\"?page=".($page+1)."\">&gt;</A>";
} else {
$next = ">";
}

//Цифрова навігація забрати
for($i=0;$i<$pages;$i++)
{
if($i==$page){
$return.="[".($i+1)."]";
} else {
$return.="<A HREF=\"?page=".$i."\">[".($i+1)."]</A>";
}
}

return $prev.$return.$next;
};
/*Об'являємо глобальні настройки*/
$host="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="pr";
/*зєднання з БД*/
mysql_connect($host,$user,$passw) or die ("<font color='red'>Неможливо встановити з'єднання з базою даних. Зверніться до адміністратора.</font>");
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>База даних зараз недоступна. Зверніться до адміністратора.</font>");
?>

   
 
 автор: cheops   (27.12.2005 в 23:15)   письмо автору
 
   для: narg   (27.12.2005 в 20:43)
 

Скорее всего значение атрибута value не заключено в кавычки...

   
 
 автор: XPraptor   (28.12.2005 в 12:35)   письмо автору
 
   для: cheops   (27.12.2005 в 23:15)
 

Cheops, приблизительно так. Скорее всего у него данные наоборот имеют кавычки а при выводе такие строки в поля формы надо htmlspecialchars() валить иначе только до первой кавычки дойдет и алес гут.

   
 
 автор: narg   (29.12.2005 в 00:21)   письмо автору
 
   для: cheops   (27.12.2005 в 23:15)
 

Нет значение value заключено в кавычки.

   
 
 автор: cheops   (29.12.2005 в 02:54)   письмо автору
 
   для: narg   (29.12.2005 в 00:21)
 

Не совсем, дело в том, что когда строка
<?php
  
echo 'Номер: &nbsp;<input type=text name=n value='.$data['n'].'><br />';
?>

выводится - кавычек не остаётся, такие строки следует заменить на
<?php
  
echo 'Номер: &nbsp;<input type=text name=n value="'.$data['n'].'"><br />';
?>

   
 
 автор: narg   (30.12.2005 в 00:57)   письмо автору
 
   для: cheops   (29.12.2005 в 02:54)
 

Спасибо cheops попробую. А так поздравляю Вас с Новым годом и Рождеством и желаю Вам терпения в Новом году отвечать на наши вопросы.

   
 
 автор: hatsker   (30.12.2005 в 01:38)   письмо автору
 
   для: narg   (30.12.2005 в 00:57)
 

А еще может быть что у вас поля в базе данных не того формата....я имею ввиду недостаточной длинны.

   
 
 автор: narg   (30.12.2005 в 20:27)   письмо автору
 
   для: cheops   (29.12.2005 в 02:54)
 

В продолжение темы еще один вопрос.
Привет народ.
Спасибо cheops все работает. Но у меня возник еще один вопрос есть небольшой код для обновления данных в базе, ниже я его привожу, и никак не могу найти где в этом коде ошибка:

<?
include ('config.php');
$id=$_POST['id'];
$n=$_POST['n'];
$names=$_POST['names'];
$city=$_POST['city'];
$sapros="UPDATE $table SET id='".$id."', n='".$n."', names='".$names."',
city='".$city."' WHERE id='"$id"'";
$ath=mysql_query($sapros);
if (!$ath)
{
echo 'Ніфіг не вийшло';
exit;
}
?>

Браузер выдает

Notice: Undefined index: id in z:\home\proba.ua\www\update.php on line 4
Notice: Undefined index: n in z:\home\proba.ua\www\update.php on line 5
Notice: Undefined index: names in z:\home\proba.ua\www\update.php on line 6
Notice: Undefined index: city in z:\home\proba.ua\www\update.php on line 7

Я знаю, что ошибка в возникает вследствие высокого уровня контроля ошибок в PHP, и что предупреждение можна отключить, но все таки может Вы подскажете что поправить, чтоб убрать предупреждение, а то я несколько раз встречался с такой проблемой и решал ее простым переписываниям скрипта.
Спасибо, Роман

   
 
 автор: cheops   (31.12.2005 в 00:14)   письмо автору
 
   для: narg   (30.12.2005 в 20:27)
 

К сожалению, в этом случае ничего поправить нельзя - только подавлять вывод замечаний (notice) - PHP всегда так реагирует на суперглобальные массивы.

   
 
 автор: narg   (31.12.2005 в 01:08)   письмо автору
 
   для: cheops   (31.12.2005 в 00:14)
 

Спасибо cheops за ответы. Если будете у нас в Львове (Украина) с меня большая бочка пива или что Вы там любите.

   
 
 автор: cheops   (31.12.2005 в 02:03)   письмо автору
 
   для: narg   (31.12.2005 в 01:08)
 

>с меня большая бочка пива
Заманчиво :)))

   
Rambler's Top100
вверх

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