[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неправильно добавляются новости
sitebuilder
Проблема: при каждой последующей добавлении новости, добавляется предыдущая введенная новость. Где то ошибка в алгоритме. Прошу помощи. Вот сам код:

<?
session_start();
include('config.php');



if ((isset($_SESSION['part_auth'])) && ($_SESSION['part_auth']==1) && $_SESSION['admin']==0)
{
include('templates/headerclient.php');
include('templates/clientmenu.php');


?>

<div id="content">
<
div id="main">

<
h3>Новости</h3>
<?
$news = mysql_query("SELECT * FROM news ORDER BY id DESC");
$showall = mysql_fetch_array($news);
while($showall = mysql_fetch_array($news))
{
?>
<b><? $data = strtotime($showall['date']); echo date('d.m.Y H:i:s', $data); ?></b><br><? echo $showall['text'] ?><br><br><br>

<?
}


}

elseif ($_SESSION['admin']==1)
{
include('templates/headeradmin.php');
include('templates/adminmenu.php');

//обработка запроса на удаление новости

if (isset($_GET['delete']))
{
$delete=addslashes(trim($_GET['delete']));
$request= "DELETE FROM news WHERE id=$delete";
$result=mysql_query($request);

}

//

// проверка что была введена новость

if (isset($_POST['text']))
{
if ($_POST['text']<>'')
{

$text=addslashes(trim($_POST['text']));
$request= "INSERT INTO news (text) VALUES ('$text')";
$result=mysql_query($request);


}
}


//


?>

<div id="content">
<
div id="main">

<
h3>Новости</h3>

<
a href="#" id="addnews" onclick="document.getElementById('addtext').style.display = 'block';">Добавить новость</a><br><br>
<
span id="addtext"><form action="p-menu.php" method="post">Введите текст новости: <textarea name="text" rows="1" cols="78" maxlength="240" style="resize:none;"></textarea>  <input name="submit" type="submit" value="Создать"><br><br></form></span>

<?
$news = mysql_query("SELECT * FROM news ORDER BY id DESC");
$showall = mysql_fetch_array($news);
while($showall = mysql_fetch_array($news))
{
?>
<b><? $data = strtotime($showall['date']); echo date('d.m.Y H:i:s', $data); ?></b> | <a href="p-menu.php?edit=<? echo $showall['id']; ?>">Редактировать</a> | <a href="p-menu.php?delete=<? echo $showall['id']; ?>">Удалить</a><br><? echo $showall['text'] ?><br><br><br>

<?
}


}

else
{
echo '<br><br><h3>Пожалуйста, авторизуйтесь.</h3>';
}

?>
</div>
</
div>
<?

include('templates/footer.php');
?>




Спустя 6 минут, 36 секунд (2.03.2012 - 12:15) Visman написал(а):
Как это выглядит по шагам? Что делаешь, чего получаешь?

Спустя 5 минут, 32 секунды (2.03.2012 - 12:21) sitebuilder написал(а):
Цитата (Visman @ 2.03.2012 - 09:15)
Как это выглядит по шагам? Что делаешь, чего получаешь?

Как видно из скрипта, имеет место быть скрытая форма с текстовым полем ввода новости (с кнопкой сабмита), которые появляются при нажатии на "Добавить новость".

После отправки, идет проверка, поступила ли post-переменная и не пуста ли она. После чего новость пишется в базу.

Но почему-то постоянно пишется предыдущая добавляемая новость а не текущая.

Спустя 5 минут, 50 секунд (2.03.2012 - 12:26) Visman написал(а):
После этого
$text=addslashes(trim($_POST['text']));
$request= "INSERT INTO news (text) VALUES ('$text')";
$result=mysql_query($request);

сделай переадресацию на страницу новостей
header('Location: url_страницы_переадресации');
exit();


Спустя 7 минут, 59 секунд (2.03.2012 - 12:34) sitebuilder написал(а):
У меня эта страница и является страницей новостей. Сделал как Вы сказали, сделал редирект в том месте на эту же страницу. Не помогло. Все равно добавляется предыдущая новость.

Спустя 9 минут, 28 секунд (2.03.2012 - 12:44) Visman написал(а):
Зачем два раза?
$showall = mysql_fetch_array($news);
while($showall = mysql_fetch_array($news))

Спустя 2 минуты, 30 секунд (2.03.2012 - 12:46) sitebuilder написал(а):
Цитата (Visman @ 2.03.2012 - 09:44)
Зачем два раза?
$showall = mysql_fetch_array($news);
while($showall = mysql_fetch_array($news))

Спасибо добрый человек ! Слона то я не заметил. Лишнюю строку убрал и все сразу заработало!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.