PDA

Просмотр полной версии : Редактирование/Удаление данных БД с сайта


alpotemkin
24.04.2009, 10:47
Доброго времени суток!

Есть страница news.php и в ней код вывода новостей из БД с разбивкой по страницам:

<?php

include ('auth.php');

/* Определяем количество сообщений на странице */
$lim = "10";
@$page = $_GET['page'];
/* Меняем table на название вашей таблицы и не забываем указывать дополнительные параметры выборки (если они у вас есть) */
$res = mysql_query("SELECT COUNT(*) FROM news ORDER BY date");
$row = mysql_fetch_array($res);
$posts = $row[0];
$str = ceil($posts/$lim);
if(empty($page) or $page < 0) $page = 1;
if($page > $str) $page = $str;
$start = $page * $lim - $lim;
/* Дальше подставляете свой код вывода данных из базы в цикле, но обязательно укажите LIMIT $start, $lim */
$result = mysql_query("SELECT date,text FROM news ORDER BY date DESC LIMIT $start, $lim",$db);
$myrow = mysql_fetch_array($result);
$n=mysql_num_rows($result);
echo "<table border=1>
<tr><th>Дата</th><th>Новость</th><th>Edit</th><th>Delete</th></tr>";

// и теперь в цикле выводим построчно
for($i=0;$i<$n;$i++)
echo
"<tr><td><b>",mysql_result($result,$i,date),
"</b></td><td>",mysql_result($result,$i,text),
"</td><td>Edit
</td><td>Delete
</td></tr>";
echo "</table>";
{printf ("<p>%s</p>",$myrow["title"]);}
while ($myrow = mysql_fetch_array ($result));
/* Дальше все остается без изменений */
echo '<a href=?page='. ($page - 1) .'>Назад</a>**';
$i=1;
while ($i <= $str)
{
if ($i==$page)
{echo '<strong><a href=?page='.$i.'>'.$i.'</a></strong>*';}
else
{echo '<a href=?page='.$i.'>'.$i.'</a>*';}
$i = $i+1;
}
echo '**<a href=?page='. ($page + 1) .'>Вперед</a>';
?>

Что нужно прописать вместо Edit и Delete, чтобы новость можно было редактировать или удалить.
Пробовал следующее прописать:

"</td><td><a href="news.php?page_title='.$myrow["title"].'">Edit</a>
</td><td><a href="news.php?page_title='.$myrow["title"].'&delete=y">Удалить</a>
</td></tr>";

но не получилось - вообще таблица перестает отображаться...

MuXaJIbI4
24.04.2009, 10:54
для начала научится разделять серверную часть получения данных ... и клиентскую для ее отображения .. и тогда не будет вопросов почему поломалась таблица и все такое

alpotemkin
24.04.2009, 11:04
для начала научится разделять серверную часть получения данных ... и клиентскую для ее отображения .. и тогда не будет вопросов почему поломалась таблица и все такое

Предложите ваш вариант написания скрипта. Я разберусь, как должно быть и приму к сведению.
Я еще учусь и потому просьба - не хаять, а показать, как правильно делать.

Deathdreams
24.04.2009, 12:48
типа админская панель?

alpotemkin
24.04.2009, 13:50
типа админская панель?

Да. Просто выводится список новостей в виде таблицы. И в каждой строке есть 2 столбца: Edit и Delete.
Вот как прописать вызов функции, чтобы брался ID новости и совершал с ним вышеозначенные действия.

alpotemkin
15.12.2009, 05:16
Эх, и никто не ответит на вопрос... :(

life_is_shit
15.12.2009, 06:02
Ответить на твой вопрос не сложно, но для этого нужно переписать ересь в первом посте=)
если за тебя ее напишут - ты ничему не научишься, увы факт.

могу посоветовать для начала.
создай файлик functions.php
в нем создай по меньшей мере три функции: view, edit, delete
в первой получи список новостей и верни результат массивом.
во втором, на входе в функцию принимай массив новых значений новости и айди новости, в самой функции заапдейть новые данные, верни результатом тру или фолс.
в третьей, на входе айди новости, в самой функции удаляешь ее из базы, результатом опять же тру или фолс.

создай заново файл news.php, подключи в него functions.php.
в этом файле ты вызовешь функцию view и получишь свой массив новостей, перебери его в цикле и выведи.

создай файл edit_news.php, подключи в него functions.php.
в файл передавай гетом/постом айди новости и необходимые параметры изменения и вызывай функцию едит. сообщи юзеру заапдейтилась новость или нет.

создай файл delete_news.php, подключи в него functions.php.
аналогично с апдейтом.

/////
так ты по крайней мере не запутаешься в своем коде.
а вообще сходи на http://php.su, почитай там статейки, особый упор сделай на ооп.
как осилишь, погугли на тему mvc.

успехов=)

alpotemkin
15.12.2009, 06:40
Мдя... только со второго раза понял о чем речь... Мне проще все понять из примеров, с комментированиями каждого действия, но раз их нет - буду копать пособия...
А так, спасибо за дачу примерно направления.

life_is_shit
15.12.2009, 06:45
велкам)

alpotemkin
16.12.2009, 14:01
Долго мучался, но что-то все равно не получается... :( Может все-таки в виде примеров, а не на словах, покажете... для тех, кто в танке. :(

Nelzone
16.12.2009, 14:25
_http://slil.ru/28353401

дальше сам разбирайся

alpotemkin
16.12.2009, 16:53
_http://slil.ru/28353401

дальше сам разбирайся

Спасибо огромное! Поковырял код - по кирпичикам теперь разбираю, что и как работает.
Воткнул все в свой дизайн, изменил данные - все работает на ура!