好吧,我會試着重新解釋這個問題,因爲沒有人能夠理解我的目標。這是凌晨3點,所以這可能是我鬆懈的地方...但我會盡力在這裏。加入第三個MySQL表(重做)
我目前在郵編&評論部分,用戶可以發表在自己或其他用戶的牆上,因此,其他用戶可以對這些帖子發表評論。與社交網絡狀態或一般論壇相同的東西。我有3個表...
Users
Statuses
Comments
用戶包含標準...
userid
username
first_name
last_name
photo
以下狀態包含了從每個用戶發佈一個主體地位的任何信息,這些狀態會顯示在用戶的配置文件。因此,用戶1可以在用戶2的個人資料上發佈狀態。下面是狀態表的設計...
status_id (auto-i)
user_id (The users ID whos profile the post was added too)
sender_id (The user who sent the post or wrote it)
date (Date/Time was sent)
rate (This doesn't matter for a moment)
comments (This will count all the comments and display the number)
status (The actual status written out)
這些表的罰款加在一起在我的腳本連接兩個表並顯示在用戶的信息(誰張貼的狀態之一),如個人資料照片和姓名等...這是我目前的劇本,根本沒有任何問題...
//// GET STATUSES
$user_id = $profile_data['userid'];
$data = mysql_query("
SELECT
statuses.status_id,
statuses.user_id,
statuses.sender_id,
statuses.date,
statuses.rate,
statuses.comments,
statuses.status,
users.userid,
users.username,
users.first_name,
users.last_name,
users.photo
FROM
statuses
LEFT JOIN
users
ON
statuses.sender_id=users.userid
WHERE
statuses.user_id = '{$profile_data['userid']}'
ORDER BY
`statuses`.`date` DESC
") or die(mysql_error());
while($status = mysql_fetch_array($data))//added this
{
$statusid = $status['status_id'];
$date = $status['date'];
$rate = $status['rate'];
$comments = $status['comments'];
$userid = $status['user_id'];
$senderid = $status['sender_id'];
$statusbody = $status['status'];
$username = $status['username'];
$firstname = $status['first_name'];
$lastname = $status['last_name'];
$photo = $status['photo'];
?>
<form action="" method="POST" role="form" enctype="multipart/form-data" id="statusupdate" class="facebook-share-box">
<div class="share">
<div class="panel panel-default">
<div class="panel-heading"><a href="<? echo 'http://basecentre.co.uk/',$status["username"]; ?>"><img alt="" align="left" hspace="20" height="70" width="70" src="<? echo 'http://basecentre.co.uk/userimages/',$status["photo"]; ?>"> </a> <font size="+2"><i class="icon icon-comment-o"></i></font> <a href="<? echo 'http://basecentre.co.uk/',$status["username"]; ?>"><font size="+2"><?php echo $status['first_name']; ?> <?php echo $status['last_name'] ; ?></font></a> | <i class="icon icon-clock-o"></i> <a rel="tooltip" href="#" data-original-title="<? echo "". date('F j, Y, g:i a', strtotime($status['date']) + 60*60) .""; ?>"><?php echo "<strong>". date('j F', strtotime($status['date']) + 60*60) ."</strong>"; ?></a></div>
<div class="panel-body">
<div class="">
<?php echo $status['status']; ?>
</div>
</div>
<div class="panel-footer">
<div class="row">
<div class="col-md-7">
Comment | Like
</div>
</div>
</div>
</div>
</div>
</form>
</br>
<?
}
?>
我已經爲評論構建了一張新表。所以,我可以去一個用戶配置文件,讀了「狀態」,然後我可以給它添加評論...這裏是新表...
comment_id (auto-i)
status_id (added depending on which status you comment on. If the comment is on status id #5, the same number will be sent to this to connect the comments with the correct statuses)
sender_id (the id of the user who is sending the comment which would be $_session['userid'];
date (date the comment was sent)
rate (Doesn't matter yet)
comment (the actual comment written out).
我需要加入新的意見表另外兩張桌子,不知何故?我嘗試添加另一個「左連接」,但這不起作用?我對這個東西不太滿意。 我的目標是按發佈日期的順序,正確顯示每個評論的連接狀態。最近在底部...顯示用戶信息,以便知道是誰發佈了評論。
希望這會給你更多的理解,我希望有人能幫助!對不起,它很長,但你們要求更多的信息...謝謝!
編輯附加數據庫記錄:
狀態表:
CREATE TABLE IF NOT EXISTS `statuses` (
`status_id` int(25) NOT NULL AUTO_INCREMENT,
`user_id` int(25) NOT NULL,
`sender_id` int(25) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`rate` int(25) NOT NULL DEFAULT '0',
`comments` int(25) NOT NULL DEFAULT '0',
`status` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`status_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=30 ;
--
-- Dumping data for table `statuses`
--
INSERT INTO `statuses` (`status_id`, `user_id`, `sender_id`, `date`, `rate`, `comments`, `status`) VALUES
(15, 11, 22, '2014-05-11 21:22:00', 0, 0, 'This is pretty damn cool! '),
(16, 11, 91, '2014-05-11 21:22:35', 0, 0, 'LOL how did you do this shit man?? Alll you gotta do now is add the comments ;) and likes! '),
(14, 11, 22, '2014-05-11 21:21:35', 0, 0, 'Hey budddy how are ya ? '),
(13, 11, 11, '2014-05-11 21:18:10', 0, 0, 'eerer'),
(11, 11, 11, '2014-05-11 21:10:33', 0, 0, 'Ho Ho!'),
(10, 11, 11, '2014-05-11 21:10:27', 0, 0, 'Hey hey ! '),
(28, 11, 11, '2014-05-12 00:47:02', 0, 0, 'LOL just another quick test ;) '),
(29, 22, 22, '2014-05-12 02:30:44', 0, 0, 'I should be able to delete this status... '),
(20, 11, 11, '2014-05-11 21:30:17', 0, 0, 'LOL WINNER'),
(21, 22, 11, '2014-05-11 23:31:18', 0, 0, 'Hey mate :D '),
(19, 11, 11, '2014-05-11 21:24:47', 0, 0, 'Not bad eh guys? ;P ');
評論表:
--
-- Table structure for table `comments`
--
CREATE TABLE IF NOT EXISTS `comments` (
`comment_id` int(100) NOT NULL AUTO_INCREMENT,
`status_id` int(25) NOT NULL,
`user_id` int(25) NOT NULL,
`sender_id` int(25) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`rate` int(25) NOT NULL DEFAULT '0',
`comment` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`comment_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
--
-- Dumping data for table `comments`
--
INSERT INTO `comments` (`comment_id`, `status_id`, `user_id`, `sender_id`, `date`, `rate`, `comment`) VALUES
(1, 28, 11, 11, '2014-05-12 01:23:58', 0, 'Hmmm shall we see if we can get this working too!? Comments, here we come! '),
(2, 28, 11, 22, '2014-05-12 02:55:33', 0, 'This is not aidans comment! another username should appear!');
用戶表:
CREATE TABLE IF NOT EXISTS `users` (
`userid` int(25) NOT NULL AUTO_INCREMENT,
`first_name` varchar(25) COLLATE latin1_general_ci NOT NULL,
`middle_name` varchar(25) COLLATE latin1_general_ci NOT NULL,
`last_name` varchar(25) COLLATE latin1_general_ci NOT NULL,
`email_address` varchar(50) COLLATE latin1_general_ci NOT NULL,
`username` varchar(25) COLLATE latin1_general_ci NOT NULL,
`password` varchar(255) COLLATE latin1_general_ci NOT NULL,
`photo` varchar(50) COLLATE latin1_general_ci NOT NULL DEFAULT 'default.png',
`date1` varchar(25) COLLATE latin1_general_ci NOT NULL,
`date2` varchar(25) COLLATE latin1_general_ci NOT NULL,
`date3` varchar(25) COLLATE latin1_general_ci NOT NULL,
`birthplace` varchar(50) COLLATE latin1_general_ci NOT NULL,
`gender` varchar(25) COLLATE latin1_general_ci NOT NULL,
`about` varchar(250) COLLATE latin1_general_ci NOT NULL DEFAULT 'This information has not yet been updated.',
`user_level` enum('0','1','2','3','4') COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`signup_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`activated` enum('0','1') COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`location` varchar(30) COLLATE latin1_general_ci NOT NULL,
`premium` enum('0','1') COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`blocked` varchar(5) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`fr_alert` varchar(6) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
`um_alert` varchar(6) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Membership Information' AUTO_INCREMENT=92 ;
你想只有有評論的帖子出現嗎?或者你想要有一些沒有評論? –
我們需要查看您當前的查詢 – kimbarcelona
我希望所有帖子都可以顯示帶有或不帶註釋。 – Jessiikah1992