|
|
|
| У меня такая просьба не могли бы вы помочь и обьяснить! Как можно вытащить из базы данных сообщение которое я Добавил ? Например чтобы было видно сколько сообщений у меня всего есть и например нажать и оно помещается в поле ввода и на кнопку редактировать нажать и оно редактируется :) Если не трудно то помогите :)
Это КОд admin.php
<?php
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
if (isset($HTTP_POST_VARS['name']))
{
$name = $HTTP_POST_VARS['name'];
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
$query = "INSERT INTO news VALUES(NULL,'$name', NOW())";
$result = mysql_query($query,$db_connect);
if (!$result)
{
$HTTP_SESSION_VARS['valid_user'] = $name;
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="admin.php">
<textarea name="name" cols="50" rows="8"></textarea>
<input name="submit" type="submit" value="Добавить">
</form>
<?
if (isset($HTTP_SESSION_VARS['valid_user']))
{
echo ' Запись добавлена ';
}
else
{
if(isset($name))
{
echo("ЗАпись не добавлена :(");
}
?>
<?
}
?>
</body>
</html>
|
А это если на всякий случай база данных :)
create database news;
create table news (
id)news int(6) not null auto_increment,
name text,
time datetime default null,
primary key (id_news)
) TYPE=MyISAM;
|
Вроде все ) | |
|
|
|
|
|
|
|
для: maDMo3r
(10.12.2004 в 22:25)
| | 1) Для того, чтобы выяснить число новостей в базе таблице новостей следует выполнить следующий скрипт:
<?php
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
$query = "SELECT COUNT(*) FROM news";
$result = mysql_query($query,$db_connect);
if (!$result)
{
echo mysql_result($result,0);
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.12.2004 в 23:34)
| | А редактирование ? :%) и Где можно найти Команды к Базе данных? ато в книжке их почти и нету :( | |
|
|
|
|
|
|
|
для: maDMo3r
(10.12.2004 в 22:25)
| | 2) Для того чтобы обновлять новости следует вывести их список со ссылками вида
<a href=updateform.php?id_news=45></a>
|
т.е. ссылка на файл с указанием первичного ключа исправляемой новости, сам файл updateform.php может иметь вид:
<?php
// Извлекаем из строки запроса первичный номер
// редактируемой новости
if(empty($_GET['id_news'])) exit("не указана редактируема новость");
else $id_news = $_GET['id_news'];
// Соединяемся с базой данных
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
// Выясняем содержимое новости с первичным ключом
// id_news
$query = "SELECT name FROM news WHERE id_news=$id_news";
$result = mysql_query($query,$db_connect);
if(!result) exit(mysql_error());
$name = mysql_result($result,0);
?>
<html>
<head>
</head>
<body>
<form method="post" action="update.php">
<textarea name="name" cols="50" rows="8"><?php echo $name; ?></textarea>
<input type=hidden name=id_news values=<?php echo $id_news; ?>>
<input name="submit" type="submit" value="Добавить">
</form>
</body>
</html>
|
Эта форма отправляет данные обработчику update.php, который может иметь вид
<?php
// Соединяемся с базой данных
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
// Формируем SQL-оператор UPDATE
$query = "UPDATE news SET name = '".$_POST['name']."' WHERE id_news=".$_POST['id_news'];
// Выполняем SQL-запрос
if(mysql_query($query))
{
// Осуществляем автоматический переход на главную страницу
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.12.2004 в 00:03)
| | Чето я не дорубил куда вставлять вот это !
<a href=updateform.php?id_news=45></a>
|
Или что с ним делать ? :(
Notice: Use of undefined constant result - assumed 'result' in d:\Apach\www\updateform.php on line 17
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in d:\Apach\www\updateform.php on line 18
|
Вот что еще пишет если захожу туда по ссылке - http://10.15.239.243/updateform.php?id_news=1 | |
|
|
|
|
|
|
|
для: maDMo3r
(11.12.2004 в 11:47)
| | 1)Эти ссылке следует сформировать, выбрав все записи в базе данных.
2)Это замечание (по коду), для его подавления в конфигурационном файле php.ini следует понизить уровень вывода ошибок как это описано в
http://www.softtime.ru/info/articlephp.php?id_article=24 | |
|
|
|
|
|
|
|
для: cheops
(11.12.2004 в 12:39)
| | обьясни плиз поточней о (1) ! :)
Не знаю пытаюсь ничего не получается :(
Пишется постоянно та ошибка у меня все настроено как и должно быть ;) :) Обьясни плиз Куда вставлять ту ссылку :)
Все Работает только вот когда выбираю новость оно вес добавляется и только сверху пишется
Notice: Use of undefined constant result - assumed 'result' in d:\Apach\www\updateform.php on line 17
Редактирую нажимаю Добавить оно заходить на update,php и все :( и ничего не апдэйтит :( | |
|
|
|
|
|
|
|
для: maDMo3r
(11.12.2004 в 14:57)
| | Notice - это предупреждения. Чтобы отключить их вывод проверьте в php.ini значение директивы error_reporting. Оно должно быть таким:
error_reporting = E_ALL & ~E_NOTICE
|
| |
|
|
|
|
|
|
|
для: maDMo3r
(11.12.2004 в 14:57)
| | Я здесь имел ввиду следующее: реализовать редактирование как это сделано в разделе администрирования гостевой книге MySQL в разделе downloads, т.е. выводить новости, а под каждой из новостей управляющую ссылку "Исправить", на следующий манер:
<?php
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
$query = "SELECT * FROM news";
$result = mysql_query($query,$db_connect);
if (!$result)
{
while($news = mysql_fetch_array($result))
{
// Выводим саму новость
echo $news['name']."<br>";
// Выводим управляющую ссылку
echo "<a href=updateform.php?id_news=".$news['id_news']."></a><br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.12.2004 в 22:47)
| | Не знаю твоим способом почему то не выводится наверное я намудрил чегото :(
у меня выводится таким скриптом !
<?
$ath = mysql_query("select * from news;");
if($ath)
{
while($row = mysql_fetch_row($ath))
{
echo "<table bgcolor=#000000>";
echo "<td> ".$row[1];
echo "</td>";
echo "</table>";
echo "<table bgcolor=#0033FF background=background/4.gif>";
echo "<td>".$row[2];
echo "</td>";
echo "</table>";
echo "<hr>";
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b></p>";
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: maDMo3r
(12.12.2004 в 01:57)
| | Уже забыл про меня :( | |
|
|
|
|
|
|
|
для: maDMo3r
(12.12.2004 в 23:35)
| | Нет, просто я подумал что это утверждение и, что моим способом не получилось, а этим получилось :))) | |
|
|
|
|
|
|
|
для: cheops
(12.12.2004 в 23:40)
| | НУ меня только этим путем выводит но не редактирует :( | |
|
|
|
|
|
|
|
для: maDMo3r
(12.12.2004 в 23:44)
| | Если у нас работает предыдущий вывод, можно его отредактировать для вывода ссылок следующим образом:
<?
$ath = mysql_query("select * from news;");
if($ath)
{
while($row = mysql_fetch_row($ath))
{
echo "<table bgcolor=#000000>";
echo "<td> ".$row[1];
echo "</td>";
echo "</table>";
echo "<table bgcolor=#0033FF background=background/4.gif>";
echo "<td>".$row[2];
echo "</td>";
echo "</table>";
echo "<hr>";
// Выводим ссылку на редактирование
echo "<a href=updateform.php?id_news=".$row[0]."></a><br>"
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b></p>";
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 00:17)
| | Отлично работает :)
Н оне редактирует Оно вставляет в форму нажимаю добавить и оно запускает страницу update.php и все никаких движения и не редактирует :( | |
|
|
|
|
|
|
|
для: maDMo3r
(13.12.2004 в 00:28)
| | Поправте файл update.php, добавив обработку ошибок:
<?php
// Соединяемся с базой данных
$dblocation = "10.15.239.243";
$dbname = "news";
$dbuser = "root";
$dbpasswd = "";
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
// Формируем SQL-оператор UPDATE
$query = "UPDATE news SET name = '".$_POST['name']."' WHERE id_news=".$_POST['id_news'];
// Выполняем SQL-запрос
if(mysql_query($query))
{
// Осуществляем автоматический переход на главную страницу
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
}
else
{
echo $query."<br>";
exit(mysql_error());
}
?>
|
Что-нибудь вываливается в окно браузера? | |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 00:38)
| | UPDATE news SET name = ' В Мукачевском клубе \"Tr@nsnet\" 11.12.2004 г. прошёл второй кубок \"Fuji\" по Warcraft TFT. В кубке приняли участие 12 игроков: Ужгород - 8, Львов - 2, Мукачево - 2. Результаты игр: 1 место - Ибрагим Аль-Кони (Fudes.Izual) (Львов) - Logitec MX510 2 место - Шелестай Кристиан (TN. Blade) (Мукачево) - Logitec MX300 3 место - Андрей Ломтев (GD.C-Club) (Львов) - Logitec S69 + Logitec keyboard. Финальные игры: GD.C-Club lose TN. Blade Fudes.Izual def TN. Blade (2:1) Вторая игра между Fudes.Izual и TN. Blade: Самая интерестная игра турнира. Играется карта Plunder Isle. Решающим моментом было - Блейд два раза словил Изуала, когда тот качался на Драконах, второй раз был решающим, Изуал теряет все войска, а у Блейда остаётся половина лимита, Изуал выходит. GG Особая благодарность администрации клуба - они предоставили мне компьютер для написания ньюса. И за проведения чемпионата согласно регламента, без нарушений.' WHERE id_news=
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | |
|
|
|
|
|
|
|
для: maDMo3r
(13.12.2004 в 00:42)
| | Ага в SQL запросе отсутствует значение первичного ключа id_news - когда появляется форма редактирования - посмотрите исходный код и проверьте имеется ли значение в value-значении скрытого поля id_news? | |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 00:50)
| | Хм.. :) а как посмотреть ? :) и что такое value ? :) ну я догадываюсь что это но не знаю точно... | |
|
|
|
|
|
|
|
для: maDMo3r
(13.12.2004 в 00:56)
| | Смотрится код любой страницы очень просто:
1) Если вы в Internet Explorer - правая кнопка мыши - Просмотр HTML-кода
2) Если в Opera - правая кнопка мыши - Фрейм - Посмотреть исходный текст
Там будет что-то вроде
<html>
<head>
</head>
<body>
<form method="post" action="update.php">
<textarea name="name" cols="50" rows="8">Новость которую правим... блин, там что-то про Warcraft - эх и классная игруха... И лишь там на берегах Калимдора ты сможешь противостоять им... то бишь я о чём :)))</textarea>
<input type=hidden name=id_news values=123>
<input name="submit" type="submit" value="Добавить">
</form>
</body>
</html>
|
Нас будет интересовать строка <input type=hidden name=id_news values=123> нужно посмотреть какое значение принимает параметр values - там должен быть первичный ключ исправляемой новости... | |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 01:30)
| | <input type=hidden name=id_news values=65> он есть ;) | |
|
|
|
|
|
|
|
для: maDMo3r
(13.12.2004 в 01:35)
| | Уже хорошо :), давайте распечатаем массив $_POST в самом начале update.php
<?php
print_r($_POST);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 01:38)
| | Array ( [name] => Здраствуйте посетители сайта ! 111 [id_news] => [submit] => Добавить )
Вот что пишет :) | |
|
|
|
|
|
|
|
для: maDMo3r
(15.12.2004 в 17:13)
| | Хм... мистика... т.е. он в форме есть наряду с кнопкой submit и текстовым полем name, а как попадет в обработчик исчезает? А когда мы добирается до обработки посмотрите нет ли в строке запроса параметра www.mysite.ru?id_news=
может мы данные переданные методом POST затираем данными, переданными методом GET? | |
|
|
|
|
|
|
|
для: cheops
(15.12.2004 в 18:44)
| | Не совсем понял вопроса :(
Но когда наводишь на ссылку пишется вот что :)
http://10.15.239.243/admin/updateform.php?id_news=99
может это надо ?:)
а когда уже отредактировал и нажимаешь кнопку добавить вверху просто урл
http://10.15.239.243/admin/update.php | |
|
|
|
|
|
|
|
для: maDMo3r
(15.12.2004 в 23:48)
| | При этом если посмотреть HTML-код ссылки http://10.15.239.243/admin/updateform.php?id_news=99 - то скрытое поле id_news имеет значение (value) 99? | |
|
|
|
|
|
|
|
для: cheops
(16.12.2004 в 00:26)
| | да! :) | |
|
|
|
|
|
|
|
для: maDMo3r
(16.12.2004 в 00:31)
| | Хм... а вы не можете в архиве выложить код - чтобы я мог отладить его у себя? | |
|
|
|
|
|
|
|
для: cheops
(16.12.2004 в 01:41)
| | Вот :) | |
|
|
|
|
|
|
|
для: maDMo3r
(16.12.2004 в 20:34)
| | Ага нашёл две ошибки
1) В updateform.php вместо
<input type=hidden name=id_news values=<?php echo $id_news; ?>>
|
следует писать
<input type=hidden name=id_news value=<?php echo $id_news; ?>>
|
2) Кроме того, SQL-запрос в update.php c
<?php
$query = "UPDATE news SET name = ".$_POST['name'].", WHERE id_news=".$_POST['id_news'];
?>
|
следует исправить на
<?php
$query = "UPDATE news SET name = '".$_POST['name']."' WHERE id_news=".$_POST['id_news'];
?>
|
PS Если появятся новые вопросы - давайте начнём новую тему, эта уже слишком длиная... | |
|
|
|
|
|
|
|
для: cheops
(16.12.2004 в 23:04)
| | Работае спасибо! :) огромное :) | |
|
|
|