|
|
|
งงช่วยทําไม insert into แล้วชื่อมันไม่ลงฐานข้อมูลครับ แต่อย่างอื่นลง |
|
|
|
|
|
|
|
งงช่วยทําไม insert into แล้ว ชื่อ มันไม่ลงฐานข้อมูลครับ แต่อย่างอื่นลง โดยแอตทิบิ้วจากฟอร์ม เป็น name
Code (PHP)
<?php
session_start();
include("connect.php");
$msg = "";
$name = htmlspecialchars($_POST['name'], ENT_QUOTES);
$name = enc($name);
$address = htmlspecialchars($_POST['address'], ENT_QUOTES);
$address = enc($address);
$phone = htmlspecialchars($_POST['phone'], ENT_QUOTES);
$phone = enc($phone);
$email = htmlspecialchars($_POST['email'], ENT_QUOTES);
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$";
if(empty($name)) {
$msg = "ท่านยังไม่ได้ใส่ชื่อ";
}
else if(empty($address)) {
$msg = "ท่านยังไม่ได้ใส่ที่อยู่";
}
else if(empty($phone)) {
$msg = "ท่านยังไม่ได้ใส่เบอร์โทร";
}
else if(!eregi($pattern, $email)) {
$msg = "ท่านใส่ Email ไม่ถูกต้องตามรูปแบบ";
}
if($msg!="") {
header("content-type:text/javascript; charset=utf-8");
echo $msg;
exit();
}
$payment = $_POST['payment'];
$sql = <<<SQL
INSERT INTO customer VALUES
('', '$name', '$address', '$phone', '$email', '$payment', NOW());
SQL;
mysql_query($sql);
$cust_id = mysql_insert_id();
db
CREATE TABLE `customer` (
`custid` smallint(6) NOT NULL auto_increment,
`name` varchar(50) default NULL,
`address` text,
`phone` varchar(50) default NULL,
`email` varchar(100) default NULL,
`payment` varchar(30) default NULL,
`order_date` date default NULL,
PRIMARY KEY (`custid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=38 ;
Tag : PHP
|
ประวัติการแก้ไข 2011-03-16 17:02:01
|
|
|
|
|
Date :
2011-03-16 17:01:12 |
By :
kenghockey |
View :
1168 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
mysql_query($sql); // บรรทัดนนี้ลองเพิ่มคำสั่งให้มันแสดง error มาหน่อยครับ
mysql_query($sql) or die(myslq_error()); // ประมาณนี้อ่ะครับ
จะได้ทราบว่า error อะไรนะครับ
|
|
|
|
|
Date :
2011-03-16 17:23:42 |
By :
pokultra |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
custid เป็น autoincrement ยังนิยมใส่ '' กันอีกหรอครับ
|
|
|
|
|
Date :
2011-03-16 17:26:03 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูแล้วคือว่าส่วนconnectผมได้ใส่แบบนี้
Code (PHP)
<?php
$connect = mysql_connect("localhost", "root", "1234");
mysql_select_db("shopping_cart");
mysql_query("SET NAMES UTF8");
?>
คือถ้าไม่ใส่
Code (PHP)
mysql_query("SET NAMES UTF8");
มันจะinsert ข้อมูลลงครับ แล้วถ้าใส่ไว้จะinsert ได้เฉพาะภาษาอังกฤษ ถ้าเป็นภาษาไทยจะไม่ลง
แต่ว่าถ้าไม่ใส่ไว้ในฐานข้อมูลก็จะเป็นภาษาต่างดาวจะแก้ยังไงครับ
|
|
|
|
|
Date :
2011-03-16 18:22:18 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตามกระทู้ด่านบนเลยครับ
|
|
|
|
|
Date :
2011-03-16 18:24:18 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้งง ว่าทําไมภาษาไทยมันไม่ลงถ้าใส่
mysql_query("SET NAMES UTF8");
แต่ถ้าไม่ใส่จะลงฐานข้อมูล แต่ภาษาจะเป็นภาษาต่างดาว collection เป็นunicode แล้วนะครับ
เป้นเฉพาะฟิลด์ name กับ address ครับ
ตอบความคิดเห็นที่ : 4 เขียนโดย : kenghockey เมื่อวันที่ 2011-03-16 18:24:18
รายละเอียดของการตอบ ::
custid เป็น autoincrement ยังนิยมใส่ '' กันอีกหรอครับ
ตรงนี้ลองลบแล้วครับกลายเป็นว่ามันinsert ไม่ลงเลยครับทุกฟิลด์เลย
โค๊ดเต็มทั้งหน้านะครับ
Code (PHP)
<?php
session_start();
include("connect.php");
$msg = "";
$name = htmlspecialchars($_POST['name'], ENT_QUOTES);
$name = enc($name);
$address = htmlspecialchars($_POST['address'], ENT_QUOTES);
$address = enc($address);
$phone = htmlspecialchars($_POST['phone'], ENT_QUOTES);
$phone = enc($phone);
$email = htmlspecialchars($_POST['email'], ENT_QUOTES);
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$";
if(empty($name)) {
$msg = "ท่านยังไม่ได้ใส่ชื่อ";
}
else if(empty($address)) {
$msg = "ท่านยังไม่ได้ใส่ที่อยู่";
}
else if(empty($phone)) {
$msg = "ท่านยังไม่ได้ใส่เบอร์โทร";
}
else if(!eregi($pattern, $email)) {
$msg = "ท่านใส่ Email ไม่ถูกต้องตามรูปแบบ";
}
if($msg!="") {
header("content-type:text/plain; charset=utf-8");
echo $msg;
exit();
}
$payment = $_POST['payment'];
$sql = <<<SQL
INSERT INTO customer VALUES
('', '$name', '$address', '$phone', '$email', '$payment', NOW());
SQL;
mysql_query($sql);
$cust_id = mysql_insert_id();
$sid = session_id();
$sql = <<<SQL
SELECT * FROM cart
WHERE sid = '$sid';
SQL;
$result = mysql_query($sql);
while($cart = mysql_fetch_array($result)) {
$sql = <<<SQL
INSERT INTO orders VALUES(
'', $cust_id, {$cart['pid']}, '{$cart['product_name']}',
{$cart['price']}, {$cart['quantity']}
);
SQL;
mysql_query($sql);
}
$sql = <<<SQL
DELETE FROM cart
WHERE sid = '$sid';
SQL;
mysql_query($sql);
mysql_close($dblink);
header("content-type:text/javascript; charset=utf-8");
echo <<<JS
document.forms['frm'].style.display = 'none';
var msg = 'เราได้รับข้อมูลการสั่งซื้อของท่านแล้ว<br>หากท่านชำระเงินตามวิธีการที่ระบุแล้ว ';
msg += '<br>เราจะดำเนินการจัดส่งสินค้าให้ท่านทันที<p>ขอบพระคุณที่เลือกซื้อสินค้าจากเรา';
msg += '<p><a href="shopping_cart.php">กลับไปที่หน้าหลัก</a>';
document.getElementById('msg').innerHTML = msg;
JS;
?>
<?php
function enc($input) {
return iconv('utf-8', 'tis-620', $input);
}
?>
ส่วน connect.php
Code (PHP)
<?php
$connect = mysql_connect("localhost", "root", "1234");
mysql_select_db("shopping");
mysql_query("SET NAMES UTF8");
?>
|
|
|
|
|
Date :
2011-03-16 18:56:28 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|