10/10/2018, 10:34

Chuyện lạ mong các bạn giúp!

Mình làm cái comment cho ở trang bài viết.

Lần đầu dữ liệu trong bảng trống. Mình bấm vào bài 1. Viết comment xong. Ok

Quay ra vào bài 2 viết commment. Nó báo lỗi. lỗi trang xử lý form. Chẳng hiểu sao. Nếu chỉ chưa có dữ liệu thì viết tốt nhưng chỉ được 1 bài.đến bài thứ 2 lại báo lỗi.

Mong các bạn giúp.

p/s: Mình sắp xong oy, giờ vướng phải cái này nữa.
BnoL viết 12:34 ngày 10/10/2018
post cái lỗi lên chứ
Thế Giới Phẳng viết 12:42 ngày 10/10/2018
Được gửi bởi bedep.net
chưa hiểu được ý bạn nói
Ở mỗi bài viết có phần viết cảm nhận đúng ko? Mình có bài viết 1, bài viết 2

Mình viết cảm nhận ở bài viết 1, nhưng sang bài viết 2 để viết thì nó lại báo lỗi. Nếu xóa hết dữ liệu trong bảng comment sang bài viết 2 thì lại đưoc nhưng bài viết 1 lại ko viết đc. Và ngược lại:

Đây là code của em:
PHP Code:
<?php
require('includes/config.php');


// Get value of id that sent from hidden field
$id=$_POST***91;'id'***93;;

// Find highest answer number.
$sql="SELECT MAX(comment_id) AS Maxcomment_id FROM manga_comment WHERE chap_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
if ($rows) {
$Max_id $rows***91;'Maxcomment_id'***93;+1;
}
else {
$Max_id 1;
}

// get values that sent from form
$name=$_POST***91;'comment_name'***93;;
$email=$_POST***91;'comment_email'***93;;
$content=$_POST***91;'comment_content'***93;;
$datetime=time();

$ip=$_SERVER***91;'REMOTE_ADDR'***93;;

// Insert answer
$sql2="INSERT INTO manga_comment(chap_id, comment_id, comment_name, comment_email, comment_content, comment_datetime, comment_ip)VALUES('$id', '$Max_id', '$name', '$email', '$content', '$datetime', '$ip')";
$result2=mysql_query($sql2);

if(
$result2){
echo 
"Successful<BR>";
echo 
"<a href='read.php?id=".$id."'>View your answer</a>";

// If added new answer, add value +1 in reply column

$sql3="UPDATE manga_chap SET chap_reply='$Max_id' WHERE chap_id='$id'";
$result3=mysql_query($sql3);

}
else {
echo 
"ERROR";
}

mysql_close();
?>
Nó báo: "ERROR"
cu0ngnv viết 12:37 ngày 10/10/2018
mình không hiểu lắm. ai giúp bạn ấy đi
khuongCOMPUTER viết 12:42 ngày 10/10/2018
Thêm vào dưới

$result2=mysql_query($sql2);
echo mysql_error();
Rồi post cái lỗi đó lên đây.
shrimp2t viết 12:50 ngày 10/10/2018
Được gửi bởi Thế Giới Phẳng
Ở mỗi bài viết có phần viết cảm nhận đúng ko? Mình có bài viết 1, bài viết 2

Mình viết cảm nhận ở bài viết 1, nhưng sang bài viết 2 để viết thì nó lại báo lỗi. Nếu xóa hết dữ liệu trong bảng comment sang bài viết 2 thì lại đưoc nhưng bài viết 1 lại ko viết đc. Và ngược lại:

Đây là code của em:
PHP Code:
<?php
require('includes/config.php');


// Get value of id that sent from hidden field
$id=$_POST***91;'id'***93;;

// Find highest answer number.
$sql="SELECT MAX(comment_id) AS Maxcomment_id FROM manga_comment WHERE chap_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
if ($rows) {
$Max_id $rows***91;'Maxcomment_id'***93;+1;
}
else {
$Max_id 1;
}

// get values that sent from form
$name=$_POST***91;'comment_name'***93;;
$email=$_POST***91;'comment_email'***93;;
$content=$_POST***91;'comment_content'***93;;
$datetime=time();

$ip=$_SERVER***91;'REMOTE_ADDR'***93;;

// Insert answer
$sql2="INSERT INTO manga_comment(chap_id, comment_id, comment_name, comment_email, comment_content, comment_datetime, comment_ip)VALUES('$id', '$Max_id', '$name', '$email', '$content', '$datetime', '$ip')";
$result2=mysql_query($sql2);

if(
$result2){
echo 
"Successful<BR>";
echo 
"<a href='read.php?id=".$id."'>View your answer</a>";

// If added new answer, add value +1 in reply column

$sql3="UPDATE manga_chap SET chap_reply='$Max_id' WHERE chap_id='$id'";
$result3=mysql_query($sql3);

}
else {
echo 
"ERROR";
}

mysql_close();
?>
Nó báo: "ERROR"
Nhìn Đoạn codde là biết Bác thiết kế Cơ Sở Dữ liệu có vấn đề rồi !

Cột comment_id ko biết bác có cho thuộc tinh PRIMARY KEY với lại auto_increment ko ? . Nếu có thì khỏi cần làm dòng Này :
PHP Code:
$sql="SELECT MAX(comment_id) AS Maxcomment_id FROM manga_comment WHERE ..."
Với lại khỏi cần dong này luân :
PHP Code:
$sql3="UPDATE manga_chap SET chap_reply='$Max_id' WHERE chap_id='$id'"
nói chung là đoạn code để comment bài viết này có nhiều chỗ ko cần thiết.

P/S: Vui Long Post cả Lệnh SQL tạo bảng trong DB lên để Anh Em xem với
or pm yahoo: shrimp2t mình sẽ chỉ cho
Thế Giới Phẳng viết 12:45 ngày 10/10/2018
Được gửi bởi khuongCOMPUTER
Thêm vào dưới


Rồi post cái lỗi đó lên đây.

Lỗi:
Duplicate entry '1' for key 1
khuongCOMPUTER viết 12:47 ngày 10/10/2018
Table manga_comment phải có primary key là field comment_id chứ không phải chap_id. Sửa lại primary key là nó chạy được thôi.
honnhienh viết 12:48 ngày 10/10/2018
do code các bạn viết ẩu quá lên không debug được error.
$result = mysql_query($sql) or die(mysql_error()); như thế. ngoài ra nếu cận thận cần kiểm tra result trước khi mysql_fetch_array nó ra.
Thế Giới Phẳng viết 12:42 ngày 10/10/2018
Được gửi bởi khuongCOMPUTER
Table manga_comment phải có primary key là field comment_id chứ không phải chap_id. Sửa lại primary key là nó chạy được thôi.
Bảng manga_comment:
Code:
CREATE TABLE `manga_comment` (
  `chap_id` bigint(100) NOT NULL,
  `comment_id` bigint(100) NOT NULL auto_increment,
  `comment_name` varchar(255) collate utf8_unicode_ci NOT NULL,
  `comment_email` varchar(255) collate utf8_unicode_ci NOT NULL,
  `comment_content` text collate utf8_unicode_ci NOT NULL,
  `comment_datetime` int(11) NOT NULL,
  `comment_ip` varchar(100) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`comment_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Không phải, mình xem kỹ rồi. Đặt khóa đúng mà! Huhu
Bài liên quan
0