|
|
|
รบกวนตรงจสอบโค้ดให้หน่อยค่ะ (วิธีแก้ไขข้อมูล Mysql ด้วย PHP) |
|
|
|
|
|
|
|
คือว่าจะออกแบบหน้าจอให้สามารถแก้ข้อมูลลูกค้าได้ค่ะ แลวมันเกิดปัญหาตรงที่ว่าข้อมูลจากฐานข้อมูลมันไม่ขึ้นมาน่ะค่ะ รบกวนดูให้หน่อยนะคะ ส่วนโค้ดที่เอามาทำ อ้างอิงมาจากเว็บ http://sonfree.com/detail.php?page_id=14 นี้น่ะค่ะ
รูปแรก show_cm.php
รูปแรกคือเมื่อเราโชว์ข้อมูลทั้งหมด สมมุติว่าเราจะแก้ข้อลูกค้าที่น้องมี่ เรากดที่ปุ่ม แก้ไขที่ช่องของลูกค้าที่ชื่อน้องมี่
พอเรากดปุ่ม แก้ไขแล้ว มันจะได้ตามรูปด้านบน ซึ่งคือปัญหาค่ะ ข้อมูลไม่โชว์แถมเป็นภาษาต่างด้าวทั้งๆที่ตั้งค่าแล้ว
โค้ดค่ะ
อันแรกคือโค้ด show_cm.php
Code (PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>I-D3SIGN : ฐานข้อมูลลูกค้าทั้งหมด</title>
<style type="text/css">
</style>
</head>
<body background="picture/bg1.jpg" bgproperties="fixed" width = "600" height = "500"><br><br><br>
<fieldset><legend><img src="picture/topic3.png"></legend>
<?
// เชื่่อมต่อฐานข้อมูล
$host="localhost"; // กำหนด host
$username="root"; // กำหนด username
$pass_word="1234"; // กำหนด Password
$db="id3sign_base"; // กำหนดชื่อฐานข้อมูล
$Conn = mysql_connect( $host,$username,$pass_word) or die ("ติดต่อฐานข้อมูลไม่ได้");// ติดต่อฐานข้อมูล
mysql_query("SET NAMES utf8",$Conn); // set กำหนดมาตราฐาน
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); // เลือกฐานข้อมูล
//--->
?>
<center><table width="450" border="1" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" bordercolor="#FFFFFF">
<tr bgcolor="#999999">
<td width="80"><font face="cordia new" size="5"><div align="center"><b>รหัส</b></div></font></td>
<td width="200"><font face="cordia new" size="5"><div align="center"><b>ชื่อลูกค้า</b></div></font></td>
<td width="120"><font face="cordia new" size="5"><div align="center"><b>เบอร์โทร</b></div></font></td>
<td width="60"><font face="cordia new" size="5"><div align="center"><b>แก้ไข</b></div></font></td>
</tr>
<?
$sql_show = "select * from customer";
$result_show = mysql_query($sql_show) or die(mysql_error());
while($row_show = mysql_fetch_array($result_show))
{
?>
<tr bordercolor="#FFFFFF" bgcolor="#CCCCCC">
<td><center><font face="cordia new" size="5">CS<?=$row_show['ID_Customer']?></font></center></td>
<td><font face="cordia new" size="5"> <?=$row_show['N_Customer']?></font></td>
<td><center><font face="cordia new" size="5"><?=$row_show['T_Customer']?></font></td>
<td><center><font face="cordia new" size="5"><div align="center"><a href="edit_cm.php?edit_id=<?=$row_show['id']?>">แก้ไข</a></font></div></td>
</tr>
<?
}
?>
</table></center>
</fieldset>
<a href="welcome.html"><input name="back" type="button" value="กลับสู่เมนูหลัก"></a>
</body>
</html>
อันที่สองคือโค้ด show_cm.php
Code (PHP)
<?php
include("connect.php");
// เชื่่อมต่อฐานข้อมูล
//$host="localhost"; // กำหนด host
//$username="root"; // กำหนด username
//$pass_word="nuiii"; // กำหนด Password
//$db="test_create_database"; // กำหนดชื่อฐานข้อมูล
//$Conn = mysql_connect( $host,$username,$pass_word) or die ("ติดต่อฐานข้อมูลไม่ได้");// ติดต่อฐานข้อมูล
//mysql_query("SET NAMES utf8",$Conn); // set กำหนดมาตราฐาน
//mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); // เลือกฐานข้อมูล
//--->
if($_POST['Edit'])
{
$name = $_POST['name'];
$tel = $_POST['tel'];
$email = $_POST['email'];
$address = $_POST['address'];
$other = $_POST['other'];
$id = $_REQUEST['edit_id'];
// แก้ไขข้อมูล
$sql_edit = "update customer set
N_Customer = '$name' , T_Customer = '$tel' , E_Customer = '$email' , A_Customer = '$address' where ID_Customer = '$id'";
mysql_query($sql_edit) or die(mysql_error());
echo "แก้ไขข้อมูลของ $name $surname สำเร็จแล้ว";
//-->
}
//เรียกข้อมูลจาก รหัส มาแสดงใน textbox
if($_REQUEST['edit_id'] != "")
{
$id = $_REQUEST['edit_id'];
$sql_show = "select * from customer where ID_Customer = '$id'";
$result_show = mysql_query($sql_show) or die(mysql_error());
$row_show = mysql_fetch_array($result_show);
}
//--->
?>
<form id="form1" name="form1" method="post" action="edit_cm.php">
ชื่อ
<input name="name" type="text" id="name" value="<?=$row_show['name']?>" />
<br />
<br />
นามสกุล
<input name="tel" type="text" id="tel" value="<?=$row_show['tel']?>" />
<br />
<br />
ที่อยู่
<textarea name="email" id="email" cols="45" rows="5"><?=$row_show['email']?>
</textarea>
<br />
<br />
เบอร์โทรศัพท์
<input name="address" type="text" id="address" value="<?=$row_show['address']?>" />
<input type="submit" name="Edit" id="Edit" value="Edit" />
<input name="edit_id" type="hidden" id="edit_id" value="<?=$_REQUEST['edit_id']?>" />
<a href="show_cm.php">กลับ</a>
</form>
ภาพดาต้าเบสค่ะ
ปล.คำนำหน้าช่องบางคำอาจจะไม่ตรงนะคะ เพราะแก้ข้างในอันที่เป็นหลักๆก่อนค่ะ
รบกวนช่วยหน่อยนะคะ
Tag : PHP, MySQL, HTML/CSS, Ajax, jQuery, CakePHP
|
|
|
|
|
|
Date :
2013-12-04 19:50:13 |
By :
koii |
View :
838 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
mysql_query("SET NAMES UTF8");
|
|
|
|
|
Date :
2013-12-04 20:25:39 |
By :
geidtiphong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในหน้าedit_cm.php
ค่าGet จากหน้า show คุณไม่ได้ส่งมานี่ครับ
เช็คค่าGET ที่ส่งมาครับ
|
|
|
|
|
Date :
2013-12-05 09:42:13 |
By :
dagonov |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เกี่ยวกับค่า GET หรือ SET NAMES อะไรเลยครับ
ไฟล์ edit_cm คุณสังเกตดีๆ สิครับ มันไม่ได้มี <meta> เหมือนไฟล์ show_cm ใช่หรือไม่
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
เนี่ย เมื่อมันไม่มีตรงนี้ มันก็จะเป็นอย่างนั้นล่ะครับ
มาถึงก็เริ่ม <form> เลยแม้แต่ <html> ก็ไม่มี
แนะนำว่าควรจะเขียน html ให้ครบถ้วนด้วยนะครับ
|
|
|
|
|
Date :
2013-12-05 11:50:51 |
By :
K |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณทำผิดอยู่ 2 จุดหลัก ๆ นะครับ
จุดแรกคือ การส่งตัวแปรจากหน้า show_cm.php ตรงบรรทัดที่ 40 คุณบอกให้ <a href="edit_show_cm.php?edit_id=<?=$row_show[id']?>"> ให้เปลี่ยนเป็น <a href="edit_show_cm.php?edit_id=<?=$row_show['ID_Customer']?>">
สาเหตุที่ส่งค่าแล้วไม่ไป เพราะ จากตารางของคุณมันไม่มีฟิวล์ที่ชื่อว่า id
จุดที่สอง จะอยู่ใน edit_cm.php คือ ต่อให้คุณแก้จุดแรกเสร็จ ข้อมูลจะไม่แสดง เพราะ ระหว่างบรรทัดที่ 42 ถึง 55 ฟิวล์ที่คุณเรียกข้อมูลมาแสดงมันไม่มีในตารางเหมือนกัน ต้องเปลี่ยนชื่อฟิวล์ให้ตรงกับในตารางนะ เช่น $row_show['name'] เป็น $row_show['N_Customer'] อะไรแบบนี้อ่ะ
ลองดูนะ
|
|
|
|
|
Date :
2013-12-06 02:40:41 |
By :
k.voyza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|