shamil
Продвинутый
Дата регистрации:
17.03.2013 00:07:27
Сообщений: 53
вот запрос,который исправил:
<?php
function checkCommentOwner($user_id, $comment_id) {
if (!(checkUser($_SESSION['login'], $_SESSION['password']))) return false; //проверяем авторизован ли пользователь
$mysqli = new mysqli("localhost", "shamil_h", "a1a2a3", "shamil_comm" //подключаемся к базе
$result_set = $mysqli->query("SELECT `owner_id` FROM `guestbook` WHERE `id` = '$comment_id'" //узнаём id пользователя (owner_id) который написал этот комент
$user = $result_set->fetch_assoc();
$owner_id = $user['owner_id'];
return $user_id == $owner_id; //сравниваем id хозяина коммента и id который передали функции
}
?>
структура таблицы:guestbook
id
names
comment
date
owner_id
и файл delete_comment.php:
<?php
if (isset($_GET['comment'])) {
$id = $_GET['comment']; //берём id коммента из GET-параметра
$mysqli = new mysqli('localhost', 'shamil_h', 'a1a2a3', 'shamil_comm'); //подключаемся к MySQL
$mysqli->query("DELETE FROM `guestbook` WHERE `id` = '$id'" //удаляем запись из таблицы
$mysqli->close(); //закрываем соединение
header("Location: http://tin-l.ru/admin/guestbook.php"
}
?>
а с самой страницы id отправляется в
файл delete_comment.php
$id = $comments[$i]["id"];
RussianPro
Эксперт
Дата регистрации:
14.07.2011 01:32:38
Сообщений: 114
На будущее: не пишите название таблиц в апострофах (`)
SELECT `owner_id` FROM `guestbook` WHERE `id` = '$comment_id'
В апострофах пишутся только названия полей в таблице!
Так же Вы забыли закрыть соединение с БД в функции checkCommentOwner
В условии не надо ставить 3 скобки (не в этом случае).
if (!(checkUser($_SESSION['login'], $_SESSION['password']))) return false;
RussianPro
Эксперт
Дата регистрации:
14.07.2011 01:32:38
Сообщений: 114
Вот Вам архив с примером http://yadi.sk/d/9lpv6pvf7Gaiy
Скачайте, посмотрите как всё работает и адаптируйте пример под себя.
P.S. В owner_id не должно быть нулей! Туда при добавлении комментария записывайте id автора комментария.
shamil
Продвинутый
Дата регистрации:
17.03.2013 00:07:27
Сообщений: 53
это обработка на странице,где возможная ошибка,все нормально удаляется,но в поле owner_id-0,не поступает id
if ($_GET['comment'] == 'delete') {
$comment_id = $_GET['id'];
$operation_result = deleteComment($comment_id);
}
$guestbook = getAllGuestBookComments();
....................
это обработка
в functions.php:
function deleteComment($id) {
if ($id == '') return false;
$mysqli = connectDB();
$result_set = $mysqli->query("DELETE FROM guestbook WHERE `id` = '$id'" //удаляем запись из таблицы
closeDB($mysqli);
return $query;
}
и
function checkCommentOwner($user_id, $comment_id) {
if (!checkUser($_SESSION['login'], $_SESSION['password'])) return false; //проверяем авторизован ли пользователь
$mysqli = connectDB();
$result_set = $mysqli->query("SELECT `owner_id` FROM guestbook WHERE `id` = '$comment_id'" //узнаём id пользователя (owner_id) который написал этот комент
$owner_id = $user['owner_id'];
$user = $result_set->fetch_assoc();
closeDB($mysqli);
return $user_id == $owner_id; //сравниваем id хозяина коммента и id который передали функции
}
вот в поле owner_id ничего не поступает.может обнаружите ошибку?
RussianPro
Эксперт
Дата регистрации:
14.07.2011 01:32:38
Сообщений: 114
$owner_id = $user['owner_id'];
$user = $result_set->fetch_assoc();
Местами их поменяйте!!! Вы сначала присваивайте переменной значение из массива, а уже потом создаёте массив! Так делать нельзя!
Покажите функцию добавления коммента в таблицу.
P.S. Давайте свой скайп, я Вам покажу как всё должно быть. А то так мы очень долго будем искать Ваши ошибки.
shamil
Продвинутый
Дата регистрации:
17.03.2013 00:07:27
Сообщений: 53
только что зарегестрировался
shamil.shakirov2