Кнопка "мне нравится"

12.01K
.
(\/)____o_O____(\/)
это для мускула ошибка, пых это пропустит
.
Ясно значит для числе можно и так ' а для текста нужно "' !
.
(\/)____o_O____(\/)
Fenix_61, если ты запрос пишешь в двойных кавычках , то
" ..... ' " . $a . " ' " .... "
если в одинарных, то
' ..... " ' . $a . ' " ....... '
.
(\/)____o_O____(\/)
класс готов
class Vote {

public $type;
public $user;    
    
function __construct($user, $type) {
$this->type = $type;    
$this->user = $user;    
$this->check();
}    

public function check() {
if (isset($_GET['voteadd']) && isset($_GET['voteid'])) {
$this->add(intval($_GET['voteid']));
}
}

public function add($pid) {
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `vote` WHERE `user`=" . $this->user . " AND `vote`=" . intval($pid) . " AND `type`='" . $this->type . "'"), 0) > 0) {
mysql_query("DELETE FROM `vote` WHERE `user`=" . $this->user . " AND `vote`=" . intval($pid) . " AND `type`='" . $this->type . "' LIMIT 1");
} else {
mysql_query("INSERT INTO `vote` SET `user`=" . $this->user . " , `vote`=" . intval($pid) . " , `type`='" . $this->type . "'");
}
if (mysql_affected_rows()>0) {
ob_end_clean();    
header('Location: ' . $_SERVER['HTTP_REFERER']);
ob_end_flush();
exit;
}   
}    

public function view($post) {
return '<div>' . mysql_result(mysql_query("SELECT COUNT(*) FROM `vote` WHERE `user`=" . $this->user . " AND `vote`=" . intval($post) . " AND `type`='" . $this->type . "'"), 0) . ' <a href="?voteadd&amp;voteid=' . intval($post) . '">мне нравиться</a></div>';
}

function __destruct() {
foreach ($this as $key => $value) { 
unset($this->$key); 
} 
}   

}


в модуле после ядра добавить
#include('../incfiles/classes/vote.php'); // если не работает автолоад, раскоментировать
$vote = new Vote($user_id, 'forum_post');

в вывод
echo $vote->view($res['id']);
.
(\/)____o_O____(\/)
таблица
CREATE TABLE IF NOT EXISTS `vote` (
  `user` int(11) NOT NULL,
  `vote` int(11) NOT NULL,
  `type` varchar(32) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
.
(\/)____o_O____(\/)
$vote = new Vote($user_id, 'forum_post');
где forum_post - тип кнопки, пример для форума, постов,
например дял новостей можно придумать тип news
.
ООО, эт я удачно в тему попал
Ща соображу..

это я так понимаю в поле voite будет накапливатся колл-во нажатий ?
.
(\/)____o_O____(\/)
Fublin, просто будут копиться записи с номером поста , номером юзера и типом
.
Koenig (07.10.2012/06:29)
Fenix_61, mysql_query('INSERT INTO `table` WHERE `int1`=' . $int1 . ' AND `int2`=' . intval($int2) . ' AND `text`="' . $text . '"');
Че бухали?))
.
(\/)____o_O____(\/)
ramzes, проблемы синтаксиса расшифровывали
Всего: 432