|
|
|
| Здраствуйте знатоки програмирования. Прежде всего хочу поздравить Вас с наступающим Новым годом и Рождеством Христовым и пожелать всего наилучшего. А теперь вопрос. Создаю небольшую базу данных, и столкнулся вот с такой проблемой когда вывожу даные на редактирование в форму на веб-странице, если в поле есть два и больше слова то они обрезаются, остаются только первое слово, что я только не делал. Притом проверял что данные из БД выводятся полностью, даже не знаю где копать. Да как пример форму для редактирования, вывода и удаления я взял из Вашего форума.
Заранее благодарен | |
|
|
|
|
|
|
|
для: narg
(27.12.2005 в 20:43)
| | Спасибо!
Приведите, пожалуйста, код формы!
P.S. А может они у Вас уже в БД образанные хранятся? | |
|
|
|
|
|
|
|
для: 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 'Номер: <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)."\"><</A>";
} else {
$prev = "<";
}
if($page<round($pages-1)){
$next = "<A HREF=\"?page=".($page+1)."\">></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>");
?> | |
|
|
|
|
|
|
|
для: narg
(27.12.2005 в 20:43)
| | Скорее всего значение атрибута value не заключено в кавычки... | |
|
|
|
|
|
|
|
для: cheops
(27.12.2005 в 23:15)
| | Cheops, приблизительно так. Скорее всего у него данные наоборот имеют кавычки а при выводе такие строки в поля формы надо htmlspecialchars() валить иначе только до первой кавычки дойдет и алес гут. | |
|
|
|
|
|
|
|
для: cheops
(27.12.2005 в 23:15)
| | Нет значение value заключено в кавычки. | |
|
|
|
|
|
|
|
для: narg
(29.12.2005 в 00:21)
| | Не совсем, дело в том, что когда строка
<?php
echo 'Номер: <input type=text name=n value='.$data['n'].'><br />';
?>
|
выводится - кавычек не остаётся, такие строки следует заменить на
<?php
echo 'Номер: <input type=text name=n value="'.$data['n'].'"><br />';
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(29.12.2005 в 02:54)
| | Спасибо cheops попробую. А так поздравляю Вас с Новым годом и Рождеством и желаю Вам терпения в Новом году отвечать на наши вопросы. | |
|
|
|
|
|
|
|
для: narg
(30.12.2005 в 00:57)
| | А еще может быть что у вас поля в базе данных не того формата....я имею ввиду недостаточной длинны. | |
|
|
|
|
|
|
|
для: 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, и что предупреждение можна отключить, но все таки может Вы подскажете что поправить, чтоб убрать предупреждение, а то я несколько раз встречался с такой проблемой и решал ее простым переписываниям скрипта.
Спасибо, Роман | |
|
|
|
|
|
|
|
для: narg
(30.12.2005 в 20:27)
| | К сожалению, в этом случае ничего поправить нельзя - только подавлять вывод замечаний (notice) - PHP всегда так реагирует на суперглобальные массивы. | |
|
|
|
|
|
|
|
для: cheops
(31.12.2005 в 00:14)
| | Спасибо cheops за ответы. Если будете у нас в Львове (Украина) с меня большая бочка пива или что Вы там любите. | |
|
|
|
|
|
|
|
для: narg
(31.12.2005 в 01:08)
| | >с меня большая бочка пива
Заманчиво :))) | |
|
|
|