PDA

View Full Version : Pageview trong PHP và MySQL



Alex0511
16-12-2008, 20:54
Chào các bác !!
E có vấn đề này thắc mắc, xin các cao thủ chỉ dùm.

E có đoạn code sau:



<?php
session_start();
include ("lib/db.php");
$session = session_id('view');
$id = $_GET['id'];
$sql="SELECT * FROM news WHERE id ='$id'";
$result=mysql_query($sql);

while($rows=mysql_fetch_array($result))

{

$view = $rows['view'];
$addview=$view+1;
$ss_id = $session.$id;
$ss_id_view = $rows['ss_id'];

}


$sql4= "UPDATE news SET ss_id='$ss_id' WHERE id='$id'";
$result4 = mysql_query($sql4);

if ($ss_id_view = $ss_id){

$sql6="update news SET view='$view' WHERE id='$id'";
$result6=mysql_query($sql6);
} else {
$sql5="update news set view='$addview' WHERE id='$id'";
$result5=mysql_query($sql5);
}
mysql_close();
?>



Code là do em viết ra, nhưng khi xem trang thì nó ko tự update trường view cho em giá trị $view + 1 :((

Vậy code trên sai ở đâu và xin các cao thủ fix dùm.

Em xin cám ơn trước.

T4R

Shellingfox
16-12-2008, 21:12
Nếu bạn update view + 1 mình nghĩ xài MySQL nó làm cho mình luôn. Code của bạn sai về logic nên nó không chạy được câu $sql5 đâu :).

Còn để update bạn nên xài như này:
$sql5="update news set view=view + 1 WHERE id='$id'";

Alex0511
16-12-2008, 21:16
Xin cám ơn bạn Shellingfox đã hỗ trợ trả lời topic.

Em xin lỗi các bác vì mới có người bạn chỉ dùm.
Em quên ở đoạn này:

if ($ss_id_view = $ss_id){ ===> if ($ss_id_view == $ss_id){ mới đùng.

Có dấu = mà nó ko chạy.

Xin lỗi mọi người vì tự biên tự diển thế này.
Nhưng có cách nào để làm pageview tốt hơn ko ? Nếu có xin chỉ dùm :D
Chào thân ái và quyết thắng :))

VuongChieuQuan
16-12-2008, 21:35
Mình nhìn qua thấy code nhiều biến thừa, tên chưa rõ ràng lắm.

namduong8889
16-12-2008, 22:16
Bạn ơi, đặt bộ đếm sử dụng php & mysql tốn tài nguyên server lắm, mình làm rồi xong phải gỡ ra. Nên đặt counter của bên thứ 3 vd như histats hoặc Google Analytic thì hơn.