Как сделать удаление запросом?

1. TheFaith (31.01.2010 / 07:02)
Есть комментарии, но в них можна только писать а удалять сообщения нельзя. Хочу сделать эту фишку удаления, не выходит. Делаю так
if($action=="delcom") {
$zapros="delete from otziv where id= '".$id."'";
//else $zapros="delete from otziv where id= '".$mid."' and who='".$id."'";
if (mysql_query($zapros)){
echo '<b>Запись успешно удалена!</b><br/>';
} else { echo '<b>Ошибка!</b><br/>';}
}
ну и вот ссылка на удаление
print "<a href=\"kom.php?".$ses."&amp;action=delcom&amp;uid=".$id."&amp;ref=".$ref."\"><b>[X]</b></a> | ";
ЗЫ. Проблема в том что с таким кодом оно пишет "сообщение удалено" а на самом деле оно остается. Еси раскомментировать ту строчку, будет тоже самое тока над самим комментом будет напостой светится "ошибка". Помогите кто знает)

2. TheFaith (31.01.2010 / 07:33)
ес че вот таблица комметнов
CREATE TABLE `otziv` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `komu` varchar(100) NOT NULL default '',
  `otkogo` varchar(100) NOT NULL default '',
  `message` varchar(250) NOT NULL default '',
  `data` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;


3. Удаленный (31.01.2010 / 08:00)
mysql_query("DELETE FROM otziv WHERE (id='$id')");
Все правильно низнаю

4. Удаленный (31.01.2010 / 10:39)
1. TheFaith, напиши перед кодом $action = $_GET['action'];

5. TheFaith (31.01.2010 / 11:32)
ща попробую )

6. TheFaith (31.01.2010 / 11:42)
все-равно, пишет успешно удалено но не удаляет

7. Удаленный (31.01.2010 / 12:01)
6. TheFaith, вместо WHERE id='$id', напиши WHERE id='".intval($_GET['uid'])."'

8. TheFaith (31.01.2010 / 12:18)
Vetas Все по прежнему((( не хоче тудалять и все sad

9. Удаленный (31.01.2010 / 13:18)
Может ты неправильный ид в адресе пишешь... Иначе я не знаю в чем ошибка

10. TheFaith (31.01.2010 / 13:49)
хм ну а как проверить правильный иль нет?

11. TheFaith (31.01.2010 / 13:57)
ты имеешь ввиду неправильно чтото с id uid ? а я хз как надо

12. ramzes (31.01.2010 / 15:36)
WHERE id = '".abs(intval($_GET['uid']))."'

13. TheFaith (01.02.2010 / 01:59)
не катит тоже sad sad sad

14. Zдешний (01.02.2010 / 02:39)
Ну может id чет неправильно передает...

15. ramzes (01.02.2010 / 03:03)
У тебя в запросе 2 переменных, а передаешь ты только одну.

16. TheFaith (01.02.2010 / 04:54)
изначально был код (в другом скрипте)
case 'delcom':
if ($level==7) $zapros="delete from blogcom where id= '".$mid."'";
else $zapros="delete from blogcom where id= '".$mid."' and who='".$id."'";
if (mysql_query($zapros)){
echo '<b>Запись успешно удалена!</b><br/>';
} else { echo '<b>Ошибка!</b><br/>';}
break;
но когда я пишу через case оно не пашет
и почему то 2 ссылки на удлаение
if($arr['who']==$id or $level == 7) echo "<a href=\"blog.php?mode=delcom&amp;act=del&amp;$wp&amp;mid=$arr[id]\">X</a>";
echo "<a href=\"blog.php?mode=delcom&amp;act=del&amp;$wp&amp;mid=$mid\">Удалить свой комментарий</a><br/>";
но у меня блин переменные не таки хз че делать((

17. ramzes (01.02.2010 / 05:56)
Тоесть ты не знаешь что твориться у тебя в коде и хочешь что бы мы это знали?))

18. Анатолий (01.02.2010 / 12:10)
<?php
if($action=="delcom") { 
$del_id=intval($_GET['id']); 
if (mysql_query("delete from otziv where id= 'del_id';")){ 
echo '<b>Запись успешно удалена!</b><br/>'; 
} else { echo '<b>Ошибка!</b><br/>';} 
}
?>
В конце запроса желательно ставить точку с запятой smile
Мелочь, а достает.
Попробуй так

19. Олег (01.02.2010 / 16:21)
Самый верный способ найти ошибку, это - профайлинг. Разбей код на участки, и ищи где переменная теряется. И еще не забывай про mysql_error()

20. TheFaith (02.02.2010 / 01:32)
19 нифига не понял

21. TheFaith (02.02.2010 / 01:34)
dek не получается

22. ramzes (02.02.2010 / 02:27)
Показ ошибок для начала включи, и echo mysql_error(); а то это пальцем в небо тыкать

23. Анатолий (02.02.2010 / 03:33)
<?php 
if($action=="delcom") {  
$del_id=intval($_GET['id']);  
mysql_query("delete from otziv where id= '$del_id';") or die(mysql_error());
echo'<span style="color: #f00">It s OK</span>';
};
?>
Если и в этом случае напишет, что все ОК, значит ошибка в запросе, но не синтаксическая, а логическая.
А в первом примере, ток что заметил, я значек $ провтыкал sad

24. ramzes (02.02.2010 / 03:41)
Только : в конце после скобки надо убрать а то ошибка будет

25. Анатолий (02.02.2010 / 09:31)
24, какая ошибка будет? Оо

26. Удаленный (02.02.2010 / 10:38)
20. TheFaith, учи PHP + MySQL

27. TheFaith (03.02.2010 / 04:55)
26 ПНХ

28. ramzes (03.02.2010 / 05:43)
#25 опечатался ; вот этот знак. А ты запусти скрипт и посмотришь что за 0_о тебе выдаст))

29. Анатолий (03.02.2010 / 23:37)
26, у меня кажись лижы не едут.)
Выдели жырным, где очепятка

30. ramzes (03.02.2010 / 23:48)
if($action=="delcom") {
$del_id=intval($_GET['id']);
mysql_query("delete from otziv where id= '$del_id';") or die(mysql_error());
echo'<span style="color: #f00">It s OK</span>';
};
по ошибке наверное поставил;

31. Анатолий (04.02.2010 / 17:48)
И чем она тебе там мешает? Если не следует блок else, то она там закономерна лично у меня, хотя и не обязательна.
Так легче код воспринимать (мне, а не интерпретатору smile )

URL: https://visavi.net/topics/5562