Chào mọi người, em vừa nhìn vào ngôn ngữ PHP. Em có một câu hỏi nhờ php giải giúp/ - Em có một data ( tạo bằng mySQL) - Em đã viết sẵn 3 trang nhưng mà không thể nào chèn thông tin vào CSDL bằng câu lệnh được. ## Trong file nén em đính kèm có 4 file: - data ( test.sql) - nhap.php ( form nhập thông tin ) - xuly.php ( trang này em định dùng để chèn thông tin vào CSDL) - lienketcsdl.php ( dùng để kết nối CSDL) Em viết hoài nhưng không thành công, mong các pro giúp em nhé/ Cám ơn thật nhiều, Tải tại đây tập tin và CSDL tại đây: http://www.mediafire.com/?y06ta71uz8ntohf
Bạn phải tìm hiểu từ cái cơ bản. Mình gọi thế này nhé. Trong file xuly.php của bạn: - Chèn vào file ketnoicsdl.php - Tìm hiểu phương thức truyền dữ liệu từ form (cụ thể trong code của bạn là post) - Thao tác với dữ liệu (cụ thể là INSRT INTO)
Không phải anh Admin ạ, em viết nhiều rồi mà không được nên mới nhờ các anh chứ. Đây là trang Xử lý ( xuly.php) mà em viết nhưng không được. Mã: <?php // Kết nối với CSDL include("ketnoicsdl.php"); /*// Gán các biến nhập vào $stt = $_POST["sothutu"]; $nd = $_POST["noidung"]; // gán $query cho dễ dùng //$query = INSERT INTO test ('ten','noidung') VALUES ('1','2'); echo 'Thành công!'; echo $stt; echo null; echo $nd; //Sử dụng lại //mysql_query($query) or die (mysql_error($query)); /**/ if($submit <> 'Post') { echo 'Không nhập thành công, vui lòng nhập lại'; include ("nhap.php"); } else { $query = "INSERT INTO csdl.test(ten,noidung) values( $_POST["sothutu"]', ' $_POST["noidung"]')"; mysql_query($query) or (mysql_error()); } ?> <h2>Thanks!!</h2> Mong các anh chỉ giúp/. Sao nản vậy bạn, mình làm sai chổ nào trong 2 file kia ạ Em kiên hơn 2 ngày rồi anh ạ, anh giúp em nhé!
Trong file xuly.php của bạn, sai ở chổ hàm if, kiểm tra điều kiện sai nên nó cứ báo không thành công mãi, ko biết bạn lấy biến $submit ở đâu ra Thứ nhất, bạn xem lại Mã: if($submit <> 'Post') Bạn có thể thay bằng hàm empty (rổng) Mã: if(empty($_POST[sothutu]) || empty($_POST[noidung])) Thứ 2, trong trường hợp này, ở đoạn code thực hiện lệnh chèn, phần chỉ định tên bảng, ban chỉ cần chỉ định tên bảng là đủ, không cần phải chỉ rõ tên CSDL nữa Mã: $query = "INSERT INTO test values('$_POST[sothutu]', '$_POST[noidung]')"; Thứ 3: Mã: values([COLOR="red"]dấu nháy đơn ở đây[/COLOR]$_POST[[COLOR="red"]"[/COLOR]sothutu[COLOR="red"]"[/COLOR]]', ' $_POST[[COLOR="red"]"[/COLOR]noidung[COLOR="red"]"[/COLOR]]')"; Bởi thế mình nói bạn tìm hiểu cơ bản đã. Gửi bạn code file xuly.php mình đã sửa theo code của bạn, tổng hợp các ý trên thôi Mã: <?php // Kết nối với CSDL include("ketnoicsdl.php"); if(empty($_POST[sothutu]) || empty($_POST[noidung])) { echo 'Không nhập thành công, vui lòng nhập lại'; include ("nhap.php"); } else { $query = "INSERT INTO test values('$_POST[sothutu]', '$_POST[noidung]')"; mysql_query($query) or (mysql_error()); } ?> <h2>Thanks!!</h2> Thứ 4, trong CSDL của bạn, đối với các trường tiếng việt, bạn nên chọn kiểu dữ liệu cho nó là utf-8 Như anh chip nói, học mấy cái này phải kiên trì, 2 ngày là quá ít
2 ngày để thử, 24/24 chỉ một vấn đề nhỏ mà chưa làm ra mà, cám ơn các anh em thử nhé! Vẫn bị lỗi, ai test thử dùm em đi, chứ em test hoài rồi mà, Mã: Notice: Use of undefined constant sothutu - assumed 'sothutu' in C:\xampp\htdocs\Life\xuly.php on line 4 Notice: Use of undefined constant noidung - assumed 'noidung' in C:\xampp\htdocs\Life\xuly.php on line 4 Thanks!!
Mã: $query = "INSERT INTO test values('$_POST["sothutu"]', '$_POST["noidung"]')"; Bạn thử bỏ lại dấu " nhé.
Mã: if(empty($_POST["sothutu"]) || empty($_POST["noidung"])) Thay tiếp đoạn này. hic, mình dùng localhost xamp, chạy ổn
---->lỗi gì sao không chịu post lên để mọi người nhìn thấy, em đừng tưởng ai cũng hiểu em đang muốn nói gì và nghĩ gì.