Bài 10: tạo comment, các sản phẩm khác cho trang chi tiết sản phẩm 2009-12-03 10:50:03


Các sản phẩm khác:
<h3>Other products</h3>

<?php
$other_sql
= mysql_query("SELECT * FROM lesson_product WHERE id < ".intval($_GET['id'])." LIMIT 3");
while(
$rs = mysql_fetch_assoc($other_sql)){ ?>
<a href="detail.php?id=<?php echo $rs['id'];?>"><?php echo $rs['name'];?></a><br />
<?php } ?>


Comment:
Trước tiên bạn tạo 1 table để lưu commnet:
CREATE TABLE `lesson_comment` (
`id` int(5) NOT NULL auto_increment,
`proid` int(5) default NULL,
`name` varchar(255) collate utf8_unicode_ci default NULL,
`comment` text collate utf8_unicode_ci,
`date` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;


Danh sách các comment hiện có:

<h3>Comments</h3>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php $comment_sql = mysql_query("SELECT * FROM lesson_comment WHERE proid = ".intval($_GET['id']));
while(
$rs = mysql_fetch_assoc($comment_sql)){ ?>
<tr>
<td><strong><?php echo $rs['name'];?></strong><br />
<?php echo nl2br($rs['comment']);?></td>
</tr>
<?php } ?>
</table>


Form New comment:
<h4>New comment</h4>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="17%">Your name</td>
<td width="83%"><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>Your comment</td>
<td><textarea name="comment" rows="5" id="comment"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="post_comment" id="post_comment" value="Send" /></td>
</tr>
</table>
</form>

Kiểm tra nếu login rồi thì mới hiện form: New comment
<?php if($_SESSION['login']) { ?>
<h4>New comment</h4>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="17%">Your name</td>
<td width="83%"><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>Your comment</td>
<td><textarea name="comment" rows="5" id="comment"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="post_comment" id="post_comment" value="Send" /></td>
</tr>
</table>
</form>
<?php } ?>



Code hoàn chỉnh nguyên trang detail:
<?php include 'connect.php';
if(
$_POST['post_comment']){
$name = addslashes($_POST['name']);
$comment = addslashes($_POST['comment']);
if(
intval($_GET['id'])){
$sql = "INSERT INTO lesson_comment(proid,name,comment,`date`) VALUES('".intval($_GET['id'])."','$name','$comment',NOW())";
mysql_query($sql);
header('location: detail.php?id='.intval($_GET['id']));

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home page</title>
<link href="css/style.css" rel="stylesheet" />
</head>

<body>
<?php include 'inc_header.php';?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="26%" valign="top"><br />
<?php include 'inc_category.php';?></td>
<td width="74%" valign="top">
<!-- Start list product--><h3>Details</h3>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
$pro_sql
= mysql_query( "SELECT p.*,c.name catname FROM lesson_product p,lesson_category c WHERE c.id = p.catid AND p.id = ".intval($_GET['id']));
$rs = mysql_fetch_assoc($pro_sql);
?>
<tr>
<td width="13%"><a href="detail.php?id=<?php echo $rs['id'];?>"><img border="0" src="upload/<?php echo $rs['image'];?>" /></a></td>
<td><strong>Product Name:</strong> <?php echo $rs['name'];?><br />
<strong>Category</strong>: <?php echo $rs['catname'];?>
<br />
<strong>Price</strong>: <?php echo $rs['price'];?>USD<br /><?php echo $rs['desc'];?><br />
<a href="cart.php?add=<?php echo $rs['id'];?>">Add to cart</a></td>
</tr>
</table>
<h3>Other products</h3>

<?php
$other_sql
= mysql_query("SELECT * FROM lesson_product WHERE id < ".intval($_GET['id'])." LIMIT 3");
while(
$rs = mysql_fetch_assoc($other_sql)){ ?>
<a href="detail.php?id=<?php echo $rs['id'];?>"><?php echo $rs['name'];?></a><br />
<?php } ?>

<h3>Comments</h3>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php $comment_sql = mysql_query("SELECT * FROM lesson_comment WHERE proid = ".intval($_GET['id']));
while(
$rs = mysql_fetch_assoc($comment_sql)){ ?>
<tr>
<td><strong><?php echo $rs['name'];?></strong><br />
<?php echo nl2br($rs['comment']);?></td>
</tr>
<?php } ?>
</table>

<h4>New comment</h4>
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="17%">Your name</td>
<td width="83%"><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td>Your comment</td>
<td><textarea name="comment" rows="5" id="comment"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="post_comment" id="post_comment" value="Send" /></td>
</tr>
</table>
</form>

<!--End list product-->

</td>
</tr>
</table>

<?php include 'inc_footer.php';?>

</body>
</html>


Qua bài này thi bạn có thể áp dụng để làm 1 blog cá nhân :)

Tra loi 14 comment(s) TG 2009-12-03 10:50:03

Cho em hỏi chút 2010-06-20 22:54:44


Cho em hỏi biến proid để làm gì : Nếu theo câu lệnh <?php $comment_sql = mysql_query("SELECT * FROM lesson_comment WHERE proid = ".intval($_GET['id'])); // thì proid == id trong bảng comment

Cách sản phẩm khác: Tại sao phải lấy id < id của sản phẩm và giới hạn 3 sản phẩm
other_sql = mysql_query("SELECT * FROM lesson_product WHERE id < ".intval($_GET['id'])." LIMIT 3");

Mong các anh hồi âm sớm .

@Cho em hỏi chút

h2n 2010-07-06 01:38:25

@Cho%20em%20h%E1%BB%8Fi%20ch%C3%BAt%20: Theo tớ : biến proid : dùng để phân chia comments . Vì 1 Get[id] sẽ có nhiều comments trong đó .
Limit 3 sản phẩm nghĩa là trưng bày tối đa 3 sản phẩm và bạn có thể kích vào . Khi kích vào thì hiện thông tin sản phẩm và hiện comment và có thể comment bên dưới .
^^ .

@h2n

h 2011-11-20 01:49:09

19

@h

Đăng Quân 2011-12-13 23:08:17

proid là mả sản phẩm, nó là khóa ngoai của bảng lesson_comment. Dùng nó trong này để lấy id của từng sản phẩm mà ta muốn bình luận về nó

@Đăng Quân

ngoclanbaby86 2012-05-07 04:48:58

@Cho%20em%20h%E1%BB%8Fi%20ch%C3%BAt: Để lấy ra các sản phẩm khác có id nhỏ hơn id của sản phẩm hiện tại ($_GET['id']) mà bạn đang xem và giới hạn hiển thị ra chỉ là 3 sản phẩm, thông thường có cách khác là dùng
other_sql = mysql_query("SELECT * FROM lesson_product WHERE id != ".intval($_GET['id'])." LIMIT 3");

Tìm ra sản phẩm có id khác với id hiện tại đang xem và giới hạn là 3

@ngoclanbaby86

khoi 2012-07-17 09:36:00

Làm thế này này bạn ơi!!!

@khoi

khoi 2012-07-17 09:36:35

<a href="http://www.banhxeobahiu.com/">Làm thế này này bạn ơi!!!</a>

@khoi

huhg 2012-07-17 09:37:02

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<a href="http://www.banhxeobahiu.com/">Làm thế này này bạn ơi!!!</a>
</body>
</html>

@huhg

hung 2012-07-17 09:37:44

Làm thế này này bạn ơi!!!Click here

@hung

zuchu 2013-02-24 22:48:48

khong hieu cho lam

@zuchu

Ngọc Thắng 2014-06-28 17:43:13

Cảm ơn bạn! mình đang cần cái này. Đã làm theo và thành công.

@Ngọc Thắng

gjg 2015-02-11 12:46:58

khkl

@gjg

2 2016-08-13 21:53:17

222

@2

Dương 2017-04-19 04:35:46

Em làm thử cho trang Khogiaydantuonggiare.com của em mà không được? anh có thể xem giúp em được không ạ

@Dương

Reply