พอผม Select ข้อมูลออกมาเป็นตารางแล้ว พอกดปุ่ม ลิงค์แล้ว ให้มันเอาข้อมูลในเรคคอร์ดนั้นๆ Insert เข้าไปอีกตารางงหนึ่งได้ไหมคับ
มันก็มีหลายวิธีแล้วแต่คนที่จะเลือกใช้
1 ส่งตัวแปร ID ไป select ใหม่อีกหน้า แล้วก็ insert
2 ส่งตัแปรแบบ Method GET ไป insert เลย เอาง่าย น่าจะวิธีนี้
คุณบอกว่าคุณสามารถลบได้ใช่มัยครับ แสดงว่าคุณต้องเข้าใจว่า เวลาลบ เราต้องระบุ ฟิว Id หลัง URL ในการลยนะครับ
เช่น
www.xxxx.com?id=5 ประมาณนี้
แต่ที่นี้เราก็เพิ่มตัวแปรที่เราแสดงตามฟิวต่างเข้ามาหลัง ? เช่น
www.xxx.com?id=5&&name=$name&&tel=$tel&&status=add เป็นต้น
ตัวสุดท้ายที่ผมเขียนเพิ่ม status=add เอาไว้ใช้ในกรณีเราต้องการเพิ่มข้อมูล หรือ ลบข้อมูล อะไรก็ได้นะครับ
เวลาใช้ก็ไปเช็คกับ IF ELSE
if($_GET[status]=='add')
{ เพิ่มอะไรก็ว่าไป}
แต่การส่งตัวแปรแบบ Method GET มันจะได้ไม่เกิน 255 ตัวอักษรนะครับ ถ้าจำไม่ผิด
ลองประยุกดูนะครับ กลัวว่าจะอธิบายงงน่ะ
Date :
2010-05-21 11:22:42
By :
martman26
คับ ขอบคุณมากคับ เด๋วจะลองดูคับ คือผมอัพรูปให้ดูไม่ได้อะคับ เน็ตมันบล็อค
แล้ว id นี่ มันคืออะไรคับ เราเปลี่ยนได้มั้ยคับ คือตอนนี้ผมมี code ลบได้คับ แต่ผมเอามาจากหนังสือ เลยไม่ค่อยเข้าใจโครงส้างมันเท่าไรอะคับ
อันนี้ Code ตารางมเวลามันจะส่งไปหน้าลบนะคับ
Code (PHP)
<span class="style33">[
</span>
<table width="1022" border="1" cellpadding="5" cellspacing="0" bordercolor="#000000" bgcolor="#CCCCCC">
<tr align="left" valign="top" bordercolor="#000000" bgcolor="#333333">
<td width="110" height="28"><div align="center" class="style29"><span class="style62"> USERNAME </span></div></td>
<td width="94"><div align="center" class="style29"><span class="style62"> ชื่อ </span></div></td>
<td width="145"><div align="center" class="style29"><span class="style62"> ชื่อสั่งกัด </span></div></td>
<td width="204"><div align="center" class="style29">
<div align="center"><span class="style62">EMAIL</span></div>
</div></td>
<td width="155"><div align="center" class="style29"><span class="style62"> เบอร์โทรศัพท์</span></div></td>
<td width="181"><div align="center" class="style29"><span class="style62"> ที่อยู่</span></div></td>
<td width="47"><div align="center" class="style29"><span class="style62">DEL</span></div></td>
</tr>
<?
$count=0;
include "Conection.php";
$sql="select * from po_member order by member_username ASC";
$result=mysql_query($sql);
while($record=mysql_fetch_array($result)) {
$count++;
echo "
<tr>
<td>$record[member_username]</td>
<td>$record[member_name]</td>
<td>$record[member_name_company]</td>
<td>$record[member_email]</td>
<td>$record[member_phone]</td>
<td>$record[member_address]</td>
<td><a href=\"delete_member.php?id_del=$record[member_username]\" onclick=\"return confirm(' ต้องการลบ $record[member_name] ออกจากระบบจริงหรือไม่ ')\">ลบ</a></td>
</tr>";
}
//mysql_close();
?>
</table>
แล้วอันนี้หน้าที่มันส่งไปคับ คือหน้า delete_member คับ
Code (PHP)
d<HTML>
<HEAD>
<TITLE>Member ระบบสมาชิก</TITLE></HEAD>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<BODY>
<BODY>
<?
$id_del=$_GET[id_del];
include "Conection.php";
$sql="delete from po_member where member_username='$id_del' ";
$result=mysql_query($sql);
if ($result) {
echo "<h3>ลบข้อมูลออกจากระบบเรียบร้อยแล้วครับ</h3>";
echo "[ <a href=admin_select.php>กลับหน้าหลัก</a> ] ";
} else {
echo "<h3>ไม่สามารถลบข้อมูลได้ครับ</h3>";
}
mysql_close();
?>
<meta http-equiv="refresh" content="1;url=admin_select.php">
</body>
</html>
ผมจะเอามาประยุกต์ให้มันเป็นการ Insert พวกข้อมูลเข้าไปอีกตารางนึงยังไงคับ
คือผทจะให้ Admin เข้ามากำหนดสิทธิของ User อะคับ คือประมาณว่าพอกดปุ่ม Activate แล้ว พวกUsername กับ Password มันจะเข้าไปอยู่ในตารางสมาชิกที่เวลาล็อคอินจะเข้าไปเช็คในตารางที่เพิ่ง Insert เข้าไปนี่ละคับ
ขอบคุณคับ
Date :
2010-05-21 11:38:04
By :
champion859
แล้วเลข 5 ที่ คุณ MarT บอกนี่ หมายถึงอะไรหรอคับ
Date :
2010-05-21 13:27:57
By :
champion859
ผมยัง Insert ไม่ได้เลยอะคับ จนตอนนี้ ช่วยดูทีนะคับ
อันนี้ Code ตอนอยู่ในตารางที่จะส่งค่าไปคับ
Code (PHP)
<?
$count=0;
include "Conection.php";
$sql="select * from po_member order by member_username ASC";
$result=mysql_query($sql);
while($record=mysql_fetch_array($result)) {
$count++;
echo "
<tr>
<td>$record[member_username]</td>
<td>$record[member_password]</td>
<td>$record[member_name]</td>
<td>$record[member_name_company]</td>
<td>$record[member_email]</td>
<td>$record[member_phone]</td>
<td>$record[member_address]</td>
<td><a href=\"delete_member.php?id_del=$record[member_username]\" onclick=\"return confirm(' ต้องการลบ $record[member_name] ออกจากระบบจริงหรือไม่ ')\">ลบ</a></td>
<td><a href=\"activate_member.php?id_del=$record[member_username]&&member_password=$record[member_password]&&
member_name=$record[member_name]&&member_name_company=$record[member_name_company]&&
member_email=$record[member_email]&&member_phone=$record[member_phone]&&
member_address=$record[member_address]\" onclick=\"return confirm(' ต้องการเพิ่ม $record[member_name] หรือไม่ ')\">เพิ่ม</a></td>
</tr>";
}
//mysql_close();
?>
อันนี้ Code ที่รับค่า จากที่ข้างบนส่งไปคับ
Code (PHP)
<HTML>
<HEAD>
<TITLE>Member ระบบสมาชิก</TITLE></HEAD>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<BODY>
<BODY>
<?
$id_del=$_GET[id_del];
include "Conection.php";
//$sql="delete from po_member where member_username='$id_del' ";
$sql = "Insert into po_member_vendor
values (
'$record[member_username]', '$record[member_password]', '$record[member_name]', '$record[member_name_company]', '$record[member_email]', '$record[member_phone]', '$record[member_address]'
);";
$result=mysql_query($sql);
if ($result) {
echo "<h3>Unlock สำเร็จ !! </h3>";
echo "[ <a href=admin_select.php>กลับหน้าหลัก</a> ] ";
} else {
echo "<h3>ไม่สามารถ Unlock ได้</h3>";
}
mysql_close();
?>
<meta http-equiv="refresh" content="1;url=admin_activate.php">
</body>
</html>
ผมลองกดคำว่าเพิ่ม แล้วมันบอกว่า ไม่สามารถ Unlock ได้อะคับ (ตามที่ตั้งไว้)
ช่วยทีนะคับ ทำมาหลายวันแล้วคับ ยังไม่ได้เลย
ขอบคุณมากๆคับ
Date :
2010-05-30 08:44:34
By :
champion859
ขอแก้ตัว..
โทษทีที่โพสท์ก่อนหน้านี้ผมยังไล่ดูโค้ดไม่ละเอียด ทีแรกนึกว่าจะ insert เข้าไปในตารางเดิม..
===================================================================
จากที่ดู code ใน script ที่รับค่ามาเพื่อ insert น่าจะเกิดจากสาเหตุที่คุณใช้ member_username เป็น primary key ทำให้ insert อีก record เพิ่มเข้าไปไม่ได้ ลองเอาตัวแปร $sql echo ออกมา แล้วเอาไป run ใน phpmyadmin ดู ผมว่ามันน่าจะฟ้องว่า duplicate key
และหากใน สคริปท์ที่ใช้สำหรับส่งค่ามามันสามารถ select record ใดๆออกมาได้แล้ว คุณจะ insert record นั้นเข้าไปอีก โดยข้อมูลใน record เหมือนเดิมทุกประการย่อมทำได้ หากไม่ได้ตั้ง primary key ไว้ แต่ก็จะเกิด record ซ้ำกันใน table ทำให้เป็นขยะใน table เปล่าๆ, แต่อย่างไรก็ตามการ design database ทุกๆ table จะต้องมี primary key
ผมว่าปรับกลไกอีกนิดนึงนะครับ หากต้องการ activate member อย่างที่ว่า ให้เพิ่มฟิลด์อีกสักฟิลด์เพื่อเก็บ status ของ member นั้นๆ และหากต้องการ activate member ให้ทำการเปลี่ยน status จะดีกว่า
แบบนี้..
<HTML>
<HEAD>
<TITLE>Member ระบบสมาชิก</TITLE></HEAD>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<BODY>
<BODY>
<?
$id_del=$_GET[id_del];
include "Conection.php";
//$sql="delete from po_member where member_username='$id_del' ";
/* ของเดิม
$sql = "Insert into po_member_vendor
values ( '$record[member_username]', '$record[member_password]',
'$record[member_name]', '$record[member_name_company]', '$record[member_email]',
'$record[member_phone]', '$record[member_address]')";
*/
/*อันใหม่ */
$sql="uddate po_member set status='1' where member_username='".$id_del."'";
$result=mysql_query($sql);
if ($result) {
echo "<h3>Unlock สำเร็จ !! </h3>";
echo "[ <a href=admin_select.php>กลับหน้าหลัก</a> ] ";
} else {
echo "<h3> ไม่สามารถ Unlock ได้</h3>";
}
mysql_close();
?>
<meta http-equiv="refresh" content="1;url=admin_activate.php">
</body>
</html>
Date :
2010-05-30 17:38:25
By :
pnbps
อ๋อ คับๆ ขอบคุณมากๆคับ เด๋วจะลองดูนะคั
Date :
2010-05-30 21:11:51
By :
อ๋อ คับๆ ขอบคุณมากๆคับ เด๋วจะลองดูนะคับ
Load balance : Server 05