Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > удаление конкретных постов через страничку


Автор: web 7.2.2006, 12:08
Значит, всем привет...

т.к. как я новичек, да еще вообще мало что по PHP знаю? понадобится ваша помощь..
попробую описать задачку

у меня есть система комментариев. Она хранится в базе MySQL.
Мне нужно вывести на php страничку список комментариев, последних 15 по времени, и иметь возможность удалять конкретный комментарий.

немного помучавшись сделал такой вот файл..


Код

<?
    $usr = "username";
    $pwd = "password";
    $db = "database";
    $host = "localhost";

    $cid = mysql_connect($host,$usr,$pwd);
    if (!$cid) { echo("ERROR: " . mysql_error() . "\n");    }

    if ($task=="del") {

        $SQL = " DELETE FROM `comments` ";
    $SQL = $SQL . " WHERE `commentid` = $id ";
        mysql_db_query($db, $SQL, $cid);

    }   
?>
<HTML>
<HEAD>
  <TITLE>Manage Links</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" >
<H1>Edit Links</H1>
<?

    $SQL = " SELECT * FROM comments ORDER BY `comments`.`date` DESC limit 15";
    $retid = mysql_db_query($db, $SQL, $cid);
    if (!$retid) { echo( mysql_error()); }
    else {
        echo ("<P><TABLE CELLPADDING=4>\n");
        while ($row = mysql_fetch_array($retid)) {
            $sitename = $row["comment"];
            $id = $row["commentid"];

            echo ("<TR>");
            echo ("<TD>$sitename</TD>\n");
            echo ("<TD><A HREF=\"manage.php?id=$id&task=del\">Delete</A></TD>");
            echo ("</TR>");
        }
        echo ("</TABLE>");
    }
?>

</BODY>
</HTML>






в базе есть 1 таблица - comments

В таблице имеются след. записи
commentid
tutorialid
name
url
email
comment
date


данный скрипт выводит все на страничку как полагается, в конце появляется линк delete, правильно выбирает id, но не удаляет комментарий.

Помогите с этим...



Автор: IvanB 7.2.2006, 12:21
Для начала я бы советовал почитать внимательно вот эту статью: http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=2846

А если лень разбираться, то:
Цитата

Код

if ($task=="del") {
 $SQL = " DELETE FROM `comments` ";
 $SQL = $SQL . " WHERE `commentid` = $id ";
 mysql_db_query($db, $SQL, $cid);
}
 

на
Код

if (isset($_GET['task'], $_GET['id']))
{
 $id=$_GET['id'];
 $task=$_GET['task'];
 // Далее твой код
}


Автор: web 7.2.2006, 12:42
выдает ошибку в строке 6 твоего кода.

Автор: IvanB 7.2.2006, 12:57
А ты ; в 4-ой строке моего кода поставь. smile

Автор: web 7.2.2006, 13:19
ошибку не выдает но не удаляет

Автор: Mal Hack 7.2.2006, 13:36
1. Юзаем mysql_query.
2. Выводим mysql_error и смотрим ошибку.

Автор: web 7.2.2006, 13:48
А это как?

извини, но я полный профан в этом деле

Автор: Mal Hack 7.2.2006, 13:57
Цитата(web @ 7.2.2006, 13:48 Найти цитируемый пост)

А это как?

"Что" как? Не знаем как вывести?

Автор: web 7.2.2006, 14:01
да

Автор: Mal Hack 7.2.2006, 14:14
print mysql_error

Эти вещи надо в книгах смотреть

Автор: web 7.2.2006, 14:22
эх, пока я с книгами разберусь...
я же потому сюда зашел ...

if(mysql_error(&mysql)[0] != '\0')
{
// an error occurred
}

в учебнике что-то вроде этого... куда мне ее вставлять .. на страничке же должно выдаваться где ошибка? там ничего нет.. работает также как и без замены кода. не удаляет

Автор: IvanB 7.2.2006, 16:05
Ты хоть разобрался, что тебе написали? И статью прочитал?
Код

if (isset($_GET['task'], $_GET['id']))
{
 $id=$_GET['id'];
 $task=$_GET['task'];
 $SQL ="DELETE FROM comments WHERE commentid = ".$id;
 mysql_db_query($db, $SQL, $cid) or die(mysql_error());
}

Автор: web 7.2.2006, 16:17
мне сказали заменить часть кода частью кода и я заменил. не моя же вина что часть кода неправильно была указана. и прочитать то я прочел да ничего не понял.

спасибо. работает. тему закрываем. СПАСИБО.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)