2013-03-19 2 views
0

로그인 한 사용자를 만드는 방법 게시물에 한 번만 쓰는 것처럼?

내가 내 데이터베이스에서이 세 개의 테이블이 ... 내 블로그의 모든 게시물에 같이 부톤 섬이 있고, 나는 단지 한 번 게시물을 좋아 로그인 한 사용자 확인하려면 :

테이블을 tbladminXshouts

CREATE TABLE `tbladminXshouts` (
    `admin_id` int(20) NOT NULL, 
    `id` int(20) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

테이블 tbladmin

CREATE TABLE `tbladmin` (
    `admin_id` int(11) NOT NULL AUTO_INCREMENT, 
    `admin_usr_name` varchar(225) NOT NULL, 
    `admin_pwd` varchar(225) NOT NULL, 
    PRIMARY KEY (`admin_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ; 

테이블 shouts

CREATE TABLE `shouts` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(45) NOT NULL, 
    `email` varchar(60) NOT NULL, 
    `lund` varchar(70) NOT NULL, 
    `LundaBlogg` varchar(20) NOT NULL, 
    `date` datetime NOT NULL, 
    `likes` int(11) NOT NULL, 
    `post` text NOT NULL, 
    `ipaddress` varchar(45) NOT NULL, 
    `userName` varchar(100) NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `email` (`email`), 
    KEY `lund` (`lund`), 
    KEY `name` (`name`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ; 

이제이 코드를 사용하면 사용자가 원하는만큼 여러 번 게시물을 좋아할 수 있습니다. 사용자를 게시하기 위해 작성해야하는 SQL은 게시물에 한 번만 있어야합니까?

+0

SQL 인젝션을 방지하기 위해 SQL 문에 입력하기 전에 입력을 살균하십시오. – Mark

+0

**주의! ** mysql_ * 함수는 [이전이므로 더 이상 사용하지 않아야합니다] (http://bit.ly/phpmsql). [PDO] (http://php.net/pdo) 나 [MySQLi] (http://php.net/msqli)를 보시고 [MySQL API 선택] (http : // php. net/manual/ko/mysqlinfo.api.choosing.php). –

+0

표시된 항목을 선택하는 쿼리를 작성하십시오. 이러한 항목을 다시 좋아할 수있는 항목을 표시하지 마십시오. –

답변

2

"좋아요"와 사용자 테이블을 연결하는 다른 테이블을 만들어 모든 Like를 기록해야합니다. 게시물에 대한 좋아요 수는 해당 테이블에서 계산할 수 있습니다 (예 : 'SELECT COUNT (*) FROM user_shouts where id = bla'). 사용자가 '게시'할 수 있는지 확인해야합니다 하나의 게시물에 대한 해당 테이블의 시간.

현재 인프라가 요구 사항을 처리 할 수없는 것처럼 보입니다.

+0

고마워요,하지만이 테이블을 의미하는 것 같아요 : CREATE TABLE'tbladminXshouts' ( 'admin_id' int (20) NOT NULL, 'id' int (20) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1; , 또는 아마도 잘못된 것일 수도 있습니다 ... –

+0

@BrunoChavez -'tbladminXshouts'의 목적은'tbladmin'을'소리 내기 '에 연결하는 것 같습니다. Niek은 정확합니다. 새 테이블이 필요할 것입니다. –

+0

@ Clockwork-Muse 감사합니다. 좋아요, 이해합니다 ... 필요한 테이블을 하나 더 만드는 방법에 대한 도움을 주시겠습니까? –

관련 문제