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

Discussion in 'PHP' started by alpotemkin, 24 Apr 2009.

  1. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток!

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

    Code:
    <?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>[COLOR=SandyBrown]Edit[/COLOR]
    </td><td>[COLOR=SandyBrown]Delete[/COLOR]
    </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, чтобы новость можно было редактировать или удалить.
    Пробовал следующее прописать:

    Code:
    "</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>";
    но не получилось - вообще таблица перестает отображаться...
     
  2. MuXaJIbI4

    MuXaJIbI4 Member

    Joined:
    20 Nov 2008
    Messages:
    66
    Likes Received:
    7
    Reputations:
    0
    для начала научится разделять серверную часть получения данных ... и клиентскую для ее отображения .. и тогда не будет вопросов почему поломалась таблица и все такое
     
  3. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Предложите ваш вариант написания скрипта. Я разберусь, как должно быть и приму к сведению.
    Я еще учусь и потому просьба - не хаять, а показать, как правильно делать.
     
  4. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    типа админская панель?
     
  5. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Да. Просто выводится список новостей в виде таблицы. И в каждой строке есть 2 столбца: Edit и Delete.
    Вот как прописать вызов функции, чтобы брался ID новости и совершал с ним вышеозначенные действия.
     
  6. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Эх, и никто не ответит на вопрос... :(
     
  7. life_is_shit

    life_is_shit Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    300
    Likes Received:
    149
    Reputations:
    19
    Ответить на твой вопрос не сложно, но для этого нужно переписать ересь в первом посте=)
    если за тебя ее напишут - ты ничему не научишься, увы факт.

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

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

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

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

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

    успехов=)
     
    3 people like this.
  8. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Мдя... только со второго раза понял о чем речь... Мне проще все понять из примеров, с комментированиями каждого действия, но раз их нет - буду копать пособия...
    А так, спасибо за дачу примерно направления.
     
  9. life_is_shit

    life_is_shit Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    300
    Likes Received:
    149
    Reputations:
    19
    велкам)
     
  10. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Долго мучался, но что-то все равно не получается... :( Может все-таки в виде примеров, а не на словах, покажете... для тех, кто в танке. :(
     
  11. Nelzone

    Nelzone Banned

    Joined:
    12 Apr 2008
    Messages:
    172
    Likes Received:
    134
    Reputations:
    6
    _http://slil.ru/28353401

    дальше сам разбирайся
     
    1 person likes this.
  12. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Спасибо огромное! Поковырял код - по кирпичикам теперь разбираю, что и как работает.
    Воткнул все в свой дизайн, изменил данные - все работает на ура!