10/10/2018, 09:33

Chèn data từ form vào MySQL gặp lỗi ! Help me !

Ý định của em là "dư thế lày" : em tạo 1 form Quản lý khách hàng cho nhân viên nhập thông tin của khách hàng đến sửa máy trong ngày , và thông tin sau khi nhập sẽ lưu vào DB . But gặp trục trặc ko hỉu lý do Mong các pro chỉ giúp em cái "ngu" và sửa sai giúp em .

*******----- DATABASE----- *******

CREATE TABLE IF NOT EXISTS `thongtinkh` (
`MS` int(4) NOT NULL,
`TenKh` varchar(128) character set utf8 collate utf8_unicode_ci NOT NULL,
`DiaChi` varchar(200) character set utf8 collate utf8_unicode_ci default NULL,
`SDT` char(11) character set utf8 collate utf8_unicode_ci NOT NULL,
`NgayNhan` date NOT NULL,
`NgayTra` date default NULL,
`ThietBiNhan` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
`ThietBiMuon` varchar(50) character set utf8 collate utf8_unicode_ci default NULL,
`NhomKh` char(10) character set utf8 collate utf8_unicode_ci NOT NULL,
`PhiDV` int(20) NOT NULL,
`GhiChu` varchar(100) character set utf8 collate utf8_unicode_ci default NULL,
PRIMARY KEY (`MS`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


******------- FIle mysql.php -------*******
<?php

$db_host = "localhost";
$db_name = "qlkh";
$db_username = "root";
$db_password = "huongntk";

@mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Khong the ket noi database");
@mysql_select_db("{$db_name}") or die("Khong the chon database");

?>

*****------- Trang index.php --------********
<?php
// Tải file mysql.php lên
require_once("mysql.php");

// Khởi động phiên làm việc
session_start();
if ( !$_SESSION['user_id'] )
{
print <<<EOF
Bạn chưa đăng nhập! <a href='login.php'>Nhấp vào đây để đăng nhập</a>
EOF;
}
else
{
$user_id = intval($_SESSION['user_id']);
$sql_query = @mysql_query("SELECT * FROM members WHERE id='{$user_id}'");
$member = @mysql_fetch_array( $sql_query );

print <<<EOF
<html>Bạn đang đăng nhập với tài khoản {$member['username']}.</html>
EOF;

}
// Chèn Data vào form
mysql_query("SET NAMES 'utf8'");
if ($_POST['title'] != "") {
$sql = "INSERT INTO thongtinkh(MS, TenKh, DiaChi, SDT, NgayNhan, NgayTra, ThietBiNhan, ThietBiMuon, NhomKh, PhiDV, GhiChu) VALUES ('".$_POST[MS]."', '".$_POST['TenKh']."', '".$_POST['DiaChi']."', '".$_POST['SDT']."', '".$_POST['NgayNhan']."', '".$_POST['NgayTra']."', '".$_POST['ThietBiNhan']."', '".$_POST['ThietBiMuon']."', '".$_POST['group']."', '".$_POST[PhiDV]."', '".$_POST['GhiChu']."')";
$result = mysql_query($sql);
}
?>

// Tạo form


<html>
<boby>

<form action="index.php?act=do" method="post">
<table align="center">
<tr valign="baseline">
<td height="26" align="right" nowrap>Số Phiếu :</td>
<td><input type="text" name="MS" value="" size="5">
</td>
</tr>
<tr valign="baseline">
<td height="27" align="right" nowrap>Tên Khách Hàng :</td>
<td><input type="text" name="TenKh" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td height="26" align="right" nowrap>Địa Chỉ :</td>

<td><input type="text" name="DiaChi" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td height="28" align="right" nowrap>Điện Thoại :</td>
<td><input type="text" name="SDT" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td height="27" align="right" nowrap>Ngày Hẹn Trả :</td>
<td><input type="text" name="NgayTra" value="yyyy-mm-dd"size="32"></td>
</tr>
<tr valign="baseline">
<td height="27" align="right" nowrap>Thiết Bị Nhận Sửa :</td>

<td><input type="text" name="ThietBiNhan" size="32"></td>
</tr>
<tr valign="baseline">
<td height="28" align="right" nowrap>Thiết Bị Cho Mượn :</td>
<td><input type="text" name="ThietBiMuon" size="32"></td>
</tr>
<tr valign="baseline">
<td height="29" align="right" nowrap>Nhóm Khách Hàng :</td>

<td><select name="group">
<option value="1" >Bảo Hành </option>
<option value="2" >PC</option>
<option value="3" >Laptop</option>
<option value="4" >ĐT</option>
<option value="5" >Tận Nơi</option>
</select> </td>
</tr>

<tr valign="baseline">
<td height="28" align="right" nowrap>Phí Dịch Vụ:</td>
<td><input type="text" name="PhiDV" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td height="25" align="right" nowrap>Ghi Chú :</td>
<td><input type="text" name="GhiChu" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="OK" />
</td>
</tr>
</table></form>
</body>
</html>

Các pro nào bik chỗ sai , chỉ giúp em . Em tự học qua mạng là chính ( BT này làm để ví dụ cũng là thành quả học tập ) nên các pro đừng chê em ngu nhá .
dinhanhency viết 11:47 ngày 10/10/2018
Fields MS,PhiDV kiểu in thì không được để trong '' nữa. Như vậy là INSERT Char vào INT roài. Thử code sau nhé.
$sql = "INSERT INTO thongtinkh(MS, TenKh, DiaChi, SDT, NgayNhan, NgayTra, ThietBiNhan, ThietBiMuon, NhomKh, PhiDV, GhiChu) VALUES (".$_POST[MS].", '".$_POST['TenKh']."', '".$_POST['DiaChi']."', '".$_POST['SDT']."', '".$_POST['NgayNhan']."', '".$_POST['NgayTra']."', '".$_POST['ThietBiNhan']."', '".$_POST['ThietBiMuon']."', '".$_POST['group']."', ".$_POST[PhiDV].", '".$_POST['GhiChu']."')";
namduong8889 viết 11:37 ngày 10/10/2018
Code:
CREATE TABLE IF NOT EXISTS `thongtinkh` (
`MS` int(4) NOT NULL,
`TenKh` varchar(128) character set utf8 collate utf8_unicode_ci NOT NULL,
`DiaChi` varchar(200) character set utf8 collate utf8_unicode_ci default NULL,
`SDT` char(11) character set utf8 collate utf8_unicode_ci NOT NULL,
`NgayNhan` date NOT NULL,
`NgayTra` date default NULL,
`ThietBiNhan` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
`ThietBiMuon` varchar(50) character set utf8 collate utf8_unicode_ci default NULL,
`NhomKh` char(10) character set utf8 collate utf8_unicode_ci NOT NULL,
`PhiDV` int(20) NOT NULL,
`GhiChu` varchar(100) character set utf8 collate utf8_unicode_ci default NULL,
PRIMARY KEY (`MS`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Bỏ mẹ chết em rồi, dùng phpmyadmin nhiều quá giờ nhìn cái đống này mãi mới hiểu.
huongsisi viết 11:46 ngày 10/10/2018
Được gửi bởi dinhanhency
Fields MS,PhiDV kiểu in thì không được để trong '' nữa. Như vậy là INSERT Char vào INT roài. Thử code sau nhé.
Vẫn ko đc ạ !
Help me ! Vì lỗi này em mò mẫn bên cái lap 3 ngày rồi
ngoc_viet08 viết 11:38 ngày 10/10/2018
phân tích code xem nó lỗi ở chỗ nào . line nào . sai về query , sai về sử dụng query , hay sai về phương hướng lập trình của bác . sai thì php nó báo line cả mà . post 1 đống lên ai bik lỗi gì bik ??
huongsisi viết 11:45 ngày 10/10/2018
Được gửi bởi ngoc_viet08
phân tích code xem nó lỗi ở chỗ nào . line nào . sai về query , sai về sử dụng query , hay sai về phương hướng lập trình của bác . sai thì php nó báo line cả mà . post 1 đống lên ai bik lỗi gì bik ??
Dạ thưa , khi chạy nó ko báo lỗi gì hết ạ. Mướt rượt nữa là đằng khác. Nhưng sau khi em nhập dữ liệu vào form thì nó ko lưu vào DB đc.
kuongnp viết 11:44 ngày 10/10/2018
Được gửi bởi huongsisi
Dạ thưa , khi chạy nó ko báo lỗi gì hết ạ. Mướt rượt nữa là đằng khác. Nhưng sau khi em nhập dữ liệu vào form thì nó ko lưu vào DB đc.
Tôi cũng mới tập tành PHP, nhưng cái của bạn thực tình là không hiện lỗi bởi vì bạn không config trong file php.ini(mặc định cài đặt thì nó là Off), tìm đến mục ***_error(cụ thể là gì thì không nhớ) và đặt giá trị On nhưng cứ hiểu cụm từ đó là để file lúc biên dịch(?thông dịch bị lỗi thì nó sẽ hiện ra lỗi nằm ở dòng nào,file nào.
wvncoltd viết 11:42 ngày 10/10/2018
Cậu post cái đoạn nó báo lỗi lên đây cho mọi người cùng biết.
huongsisi viết 11:35 ngày 10/10/2018
Cảm ơn các pác đã giúp đỡ em . Em đã fix lỗi đc rồi ạ . Em mới tập tành,các pác múa quá . em rúi thêm . Thực ra lỗi đơn giản lắm :
if ($_POST['title'] != "")
Nó ko hiểu 'title' là gì nên ko lưu và DB đc. Bỏ đi là uk .
chipden024 viết 11:37 ngày 10/10/2018
Bạn có thể đặt name của button submit là cmd chẳng hạn, sau đó, trên đoạn code insert vào như sau:
if($_request["cmd"]=="OK"){
$sql = "INSERT INTO thongtinkh(MS, TenKh, DiaChi, SDT, NgayNhan, NgayTra, ThietBiNhan, ThietBiMuon, NhomKh, PhiDV, GhiChu) VALUES (".$_POST[MS].", '".$_POST['TenKh']."', '".$_POST['DiaChi']."', '".$_POST['SDT']."', '".$_POST['NgayNhan']."', '".$_POST['NgayTra']."', '".$_POST['ThietBiNhan']."', '".$_POST['ThietBiMuon']."', '".$_POST['group']."', ".$_POST[PhiDV].", '".$_POST['GhiChu']."')";
mysql_query($sql);
}
Bài liên quan
0