ต้องการตรวจสอบ ว่าค่า dep_id มีคนใช้หรือยังก่อนจะลบค่ะ
เช็คจาก table ที่บันทึกการนำไปใช้น่ะค่ะ
หมายถึง พอเอาไปใช้จะต้องเก็บไว้ใน table ไหน
เช่น
DELETE FROM ตารางแผนก WHERE dep_id NOT IN (SELECT dep_id FROM ตารางที่นำไปใช้)
//ลบทุก record ที่ไม่ถูกนำไปใช้
หรือ ถ้ากลัวพลาดแล้วข้อมูลหาย ก็ลอง SELECT ข้อมูลออกมาดูก่อนก็ได้ค่ะ ว่าจะลบถูกไหม
SELECT dep_id FROM ตารางแผนก WHERE dep_id NOT IN (SELECT dep_id FROM ตารางที่นำไปใช้)
***ขออภัยค่ะตอบไม่ตรงคำถามเนอะ อิอิ
ประวัติการแก้ไข 2011-02-22 17:07:27
Date :
2011-02-22 16:00:59
By :
ultrasiam
ขอบคุณนะคะ แทรกตรงไหนอะ
Date :
2011-02-22 16:10:19
By :
หน่อย
ตัวอย่างที่ให้ไปเป็น SQL Statement ค่ะ ไม่ใช่โค้ด PHP
มันจะได้ dep_id ที่ยังไม่ถูกใช้ทั้งหมด
ถ้าคุณต้องการ ตรวจสอบทีละตัวว่า dep_id นี้ถูกใช้หรือยังนั้น
เดี๋ยวเขียนตัวอย่างให้ดูดีกว่า รู้สึกจะมีคนถามเรื่องการเช็คค่าซ้ำ ประมาณนี้เยอะเหลือเกิน สักครู่นะคะ ^^
Date :
2011-02-22 16:16:27
By :
ultrasiam
ขอบคุณคะ Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>showตารางแผนก</title>
<style type="text/css">
<!--
.style2 {font-family: "MS Sans Serif"; font-size: 14px; }
body,td,th {
font-family: MS Sans Serif;
font-size: 14px;
}
.style3 {color: #FFFFFF}
.style4 {font-family: "MS Sans Serif"; font-size: 14px; color: #FFFFFF; }
-->
</style>
</head>
<body>
<p>
<?
include("../connect.inc.php");
mysql_query ("SET NAMES UTF8");
//สั่งให้ทำงาน
$sql="select * from department ORDER BY dep_id";
//$sql="select * from officer inner join department where(officer.office_id=department.dep_id)";
$db_query=mysql_db_query($db,$sql);
//หาจำนวน เรคคอดในตาราง
$num_rows=mysql_num_rows($db_query);
//หาจำนวนฟิลด์ในตาราง
$num_fields=mysql_num_fields($db_query);
echo"แสดงข้อมูลใน ตารางแผนก ในฐานข้อมูล $db<H3>";
//echo"<table border=1>";
//echo"<tr>";
////พิมพ์ส่วนหัวตาราง
//$i=0;
//while($i<$num_fields)
//{
// $field_name[$i]=mysql_field_name($db_query,$i);
// echo "<td bgcolor-skyblue>".$field_name[$i]."</td>";
// $i++;
//}
//เริ่มวนรอบแสดงข้อมูล
//$i=0;
//while($i<$num_rows)
//{
// $result=mysql_fetch_array($db_query);
//
// //$office_id=$result[office_id];
// $username= $result[username];
// $password= $result[password];
// $office_name= $result[office_name];
// $dep_id= $result[dep_id];
// $office_tele= $result[office_tele];
// $office_email= $result[office_email];
// $office_rights= $result[office_rights];
// echo"<tr>
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<th width="13%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style2 style3">ลำดับ</div></th>
<th width="24%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ชื่อแผนก</div></th>
<th width="30%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ที่ตั้งของแผนก</div></th>
<th width="25%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">เบอร์โทรศัพท์</div></th>
<th width="8%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style3">แก้ไข</div></th>
</tr>
</table>
<?
$a=0;
$b=1;
while($a < $num_rows)
{
$result = mysql_fetch_array($db_query);
$dep_id= $result[dep_id];
$dep_name= $result[dep_name];
$dep_location= $result[dep_location];
$dep_tel= $result[dep_tel];
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="13%" align="center"><div align="left"><?echo "$dep_id"?></div>
<div align="center"></div><div align="center"></div><div align="center"></div></td>
<td width="24%"><div align="left"><?echo "$dep_name"?></div></td>
<td width="30%"><div align="left"><?echo "$dep_location"?></div></td>
<td width="25%"><div align="left"><?echo "$dep_tel"?></div></td>
<td width="8%" bgcolor="#FF00FF"><div align="center"><a href="edit_dep.php?dep_id=<?=$result[dep_id];?>"onclick="return confirm(' ต้องการแก้ไข <? echo $result[dep_name];?> จริงหรือไม่ ')"><img src="../image/Txt.png" alt="แก้ไข" name="edit" width="16" height="16" border="0"></a></div></td>
</tr>
</table>
<?
$b++;
$a++;
}
echo"<center><br>จำนวนข้อมูลทั้งหมด = $num_rows</center>";
//";
// $i++;
//}
//echo"</tr>";
//echo"</table>";
//ปิดการติดต่อฐานข้อมูล
mysql_close();
?>
</p>
<p> </p>
<p><a href="add_dep.php">เพิ่มแผนก</a></p>
<p><a href="index_procurement.php">กลับสู้หน้าหลัก</a></p>
<p> </p>
</body>
</html>
Date :
2011-02-22 16:30:42
By :
หน่อย
ตัวอย่างการตรวจสอบค่าซ้ำในฐานข้อมูลนะคะ
หน้า Form
Code (PHP)
<form id="form1" name="form1" method="post" action="">
ID <input name="id" type="text" id="id" />
<input type="button" name="Button" value="Check" onclick="doCallAjax(document.getElementById('id').value)" />
</form>
<script>
function doCallAjax(search_id) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'chk_same.php';
var pmeters ="id="+search_id;
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
if(search_id!=""){
HttPRequest.send(pmeters);
}else{
alert("Please insert id")
}
HttPRequest.onreadystatechange = function(){
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText==0){
alert("Not same");
}else{
alert("Same");
}
}
}
}
</script>
ไฟล์เช็คค่าซ้ำ chk_same.php
chk_same.php
<?php
$host="localhost";
$username="root";
$passwd="";
$dbname="test";
$conn = mysql_pconnect($host,$username,$passwd)or die("Can't connect to Server");
mysql_select_db($dbname)or die("Can't connect to Database");
$sql = "SELECT COUNT(good_id) AS cid FROM good WHERE good_id=".$_POST["id"];
$query = mysql_query($sql)or die("Can't query");
$objquery = mysql_fetch_array($query);
echo $objquery['cid'];
?>
ลองเอาไปดัดแปลงใช้กันดูนะคะ
ประวัติการแก้ไข 2011-02-22 16:36:20 2011-02-22 16:37:42
Date :
2011-02-22 16:35:38
By :
ultrasiam
แต่อันนี้ มันแต่เตือนว่าจะ ลบหรือไม่ ต้องการให้มัน บอกว่า ลบไม่ได้เพราะมีคนประจำแผนกแล้ว
หรือ ลบได้เพราะเป็นแผนกที่ไม่มีคนประจำ
Date :
2011-02-22 16:36:22
By :
หน่อย
ajax เลยหรอคะ
Date :
2011-02-22 16:38:17
By :
หน่อย
หา ลบ ในโค้ดคุณไม่เจอ ^^
Date :
2011-02-22 16:40:56
By :
ultrasiam
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>showตารางแผนก</title>
<style type="text/css">
<!--
.style2 {font-family: "MS Sans Serif"; font-size: 14px; }
body,td,th {
font-family: MS Sans Serif;
font-size: 14px;
}
.style3 {color: #FFFFFF}
.style4 {font-family: "MS Sans Serif"; font-size: 14px; color: #FFFFFF; }
-->
</style>
</head>
<body>
<p>
<?
include("../connect.inc.php");
mysql_query ("SET NAMES UTF8");
//สั่งให้ทำงาน
$sql="select * from department ORDER BY dep_id";
//$sql="select * from officer inner join department where(officer.office_id=department.dep_id)";
$db_query=mysql_db_query($db,$sql);
//หาจำนวน เรคคอดในตาราง
$num_rows=mysql_num_rows($db_query);
//หาจำนวนฟิลด์ในตาราง
$num_fields=mysql_num_fields($db_query);
echo"แสดงข้อมูลใน ตารางแผนก ในฐานข้อมูล $db<H3>";
//echo"<table border=1>";
//echo"<tr>";
////พิมพ์ส่วนหัวตาราง
//$i=0;
//while($i<$num_fields)
//{
// $field_name[$i]=mysql_field_name($db_query,$i);
// echo "<td bgcolor-skyblue>".$field_name[$i]."</td>";
// $i++;
//}
//เริ่มวนรอบแสดงข้อมูล
//$i=0;
//while($i<$num_rows)
//{
// $result=mysql_fetch_array($db_query);
//
// //$office_id=$result[office_id];
// $username= $result[username];
// $password= $result[password];
// $office_name= $result[office_name];
// $dep_id= $result[dep_id];
// $office_tele= $result[office_tele];
// $office_email= $result[office_email];
// $office_rights= $result[office_rights];
// echo"<tr>
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<th width="13%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style2 style3">ลำดับ</div></th>
<th width="24%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ชื่อแผนก</div></th>
<th width="30%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ที่ตั้งของแผนก</div></th>
<th width="25%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">เบอร์โทรศัพท์</div></th>
<th width="8%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style3">แก้ไข</div></th>
<th width="3%" bgcolor="#FF6699"><div align="center" class="style1 style12 style14">ลบ</div></th>
</tr>
</table>
<?
$a=0;
$b=1;
while($a < $num_rows)
{
$result = mysql_fetch_array($db_query);
$dep_id= $result[dep_id];
$dep_name= $result[dep_name];
$dep_location= $result[dep_location];
$dep_tel= $result[dep_tel];
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="13%" align="center"><div align="left"><?echo "$dep_id"?></div>
<div align="center"></div><div align="center"></div><div align="center"></div></td>
<td width="24%"><div align="left"><?echo "$dep_name"?></div></td>
<td width="30%"><div align="left"><?echo "$dep_location"?></div></td>
<td width="25%"><div align="left"><?echo "$dep_tel"?></div></td>
<td width="8%" bgcolor="#FF00FF"><div align="center"><a href="edit_dep.php?dep_id=<?=$result[dep_id];?>"onclick="return confirm(' ต้องการแก้ไข <? echo $result[dep_name];?> จริงหรือไม่ ')"><img src="../image/Txt.png" alt="แก้ไข" name="edit" width="16" height="16" border="0"></a></div></td>
<td width="3%" bgcolor="#FF99FF"><div align="center" class="style11"><span class="style1"><a href="chk_user.php?dep_id=<? echo $result[dep_id];?>&chk=delete"onclick="return confirm(' ต้องการลบ <? echo $result[dep_id];?> <? echo $result[dep_name];?> ออกจากระบบจริงหรือไม่ ')"><img src="../image/Trashcan empty.png" alt="ลบ" name="delete" width="16" height="16" border="0"></a></span></div></td>
</tr>
</table>
<?
$b++;
$a++;
}
echo"<center><br>จำนวนข้อมูลทั้งหมด = $num_rows</center>";
//";
// $i++;
//}
//echo"</tr>";
//echo"</table>";
//ปิดการติดต่อฐานข้อมูล
mysql_close();
?>
</p>
<p> </p>
<p><a href="add_dep.php">เพิ่มแผนก</a></p>
<p><a href="index_procurement.php">กลับสู้หน้าหลัก</a></p>
<p> </p>
</body>
</html>
Date :
2011-02-23 11:18:08
By :
หน่อย
มันให้ insert id คะกดแล้วก็ can't query
Date :
2011-02-23 15:11:05
By :
หน่อย
$_POST["id"]; ตัวนี้ มากจากไหนคะ ไม่ใช่ dep_id หรอคะ
Date :
2011-02-23 15:14:36
By :
ห
ขออภัยค่ะ พอดีงานเข้า ^^
ที่มันให้ insert id เพราะ search_id เป็นค่าว่างค่ะ จากโค้ดนี้
if(search_id!=""){
HttPRequest.send(pmeters);
}else{
alert("Please insert id")
}
$_POST["id"] คือค่า parameter ที่ ajax ส่งมาค่ะ
var pmeters ="id="+search_id;
ถ้าอยากรู้ว่าทำไมถึง "Can't query" ก็เปลี่ยนโค้ดจาก
$query = mysql_query($sql)or die("Can't query");
เป็น
$query = mysql_query($sql)or die(mysql_error());
ประวัติการแก้ไข 2011-02-23 16:24:07
Date :
2011-02-23 16:18:46
By :
ultrasiam
มันก็คือกัน
Date :
2011-02-23 16:31:47
By :
หน่อย
ใช่ค่ะ มันไม่หายหรอกค่ะ แค่บอกวิธีตรวจสอบ ไม่ได้แก้ให้ค่ะ
เสร็จแล้ว ลอง alert(HttPRequest.responseText) ดู จะเห็น error ที่ทำให้ query ไม่ได้ค่ะ error ว่าไง เอามาโพสจะช่วยดูให้ค่ะ
Date :
2011-02-23 16:35:15
By :
ultrasiam
พี่คะ หนูนึกอะไรได้คะ คือว่า หนูมีหน้า chk_dep.php คะก็คือ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body,td,th {
font-family: Times New Roman, Times, serif;
}
-->
</style></head>
<style>
a:hover{text-decoration:none;color:red}
a{text-decoration:none;color:blue}
a:link{text-decoration:none;color:#3366FF}
a:vlink{text-decoration:none;color:#0000FF}
.style1 {color: #FFFFFF}
</style>
<?
include("../connect.inc.php");
mysql_query ("SET NAMES UTF8");
// Add member data.
if($chk==add) {
$dep_id= $_POST[dep_id];
$dep_name= $_POST[dep_name];
$dep_location = $_POST[dep_location];
$dep_tel = $_POST[dep_tel];
if( ($dep_name =="")|| ($dep_location =="")|| ($dep_tel =="")){ //ตรวจสอบการป้อนข้อมูล
echo "<center><h3>ไม่สามารถบันทึกข้อมูลได้เนื่องจากกรอกข้อมูลไม่ครบค่ะ.</h3>";
echo "[ <a href='add_dep.php'>กลับไปกรอกข้อมูลใหม่่ค่ะ</a> ]</center>";
} else {
$sql="SELECT dep_name FROM department WHERE dep_name='$dep_name';";
$result = mysql_db_query($db,$sql);
$num = mysql_num_rows($result);
if ($num>0){
echo "<BR><BR><CENTER> $dep_id ไม่สามารถบันทึกข้อมูลได้เนื่องจาก ชื่อ นี้ถูกใช้แล้ว กรุณากรอกข้อมูลใหม่อีกครั้ง</CENTER></b>";
echo "[ <a href='add_dep.php'>กลับไปกรอกข้อมูลใหม่่ค่ะ</a> ]</center>";
die;
//} else if (!chkmail($email)) {
// echo "<br><center><h3>Error : รูปแบบ Email ไม่ถูกต้อง.</h3>";
// echo "<meta http-equiv=refresh content=1;URL=user1.php>";
} else {
$sql ="INSERT INTO department (dep_id,dep_name,dep_location,dep_tel)
VALUES ('$dep_id','$dep_name','$dep_location','$dep_tel')";
$result = mysql_db_query($db,$sql);
if($result){
echo "<BR><BR><CENTER>บันทึกข้อมูลเรียบร้อยแล้ว</CENTER>";
echo "<meta http-equiv=refresh content=1;URL=show_dep.php>";
}else{
echo "<BR><BR><CENTER>ไม่สามารถบันทึกข้อมูลได้เนื่องจากเกิดความผิดพลาดในการบันทึกข้อมูล";
echo "[ <a href='add_dep.php'>กลับไปกรอกข้อมูลใหม่่ค่ะ</a> ]</center>";
}
}
}
mysql_close();
} else
// Edit member data.
if($chk==edit) {
$dep_id= $_POST[dep_id];
$dep_name= $_POST[dep_name];
$dep_location = $_POST[dep_location];
$dep_tel = $_POST[dep_tel];
include("../connect.inc.php");
$sql = "UPDATE department SET dep_name ='$dep_name', dep_location ='$dep_location', dep_tel ='$dep_tel' WHERE dep_id = $dep_id";
$result = mysql_db_query($db,$sql);
if($result) {
echo "<center><h3>แก้ไขข้อมูลของ dep_id= '$dep_id' เรียบร้อยแล้ว</h3><br>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}else{
echo "<center><h3>ไม่สามารถแก้ไขข้อมูลได้เนื่องจากเกิดความผิดพลาดในการแก้ไขข้อมูล</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}
mysql_close();
} else
// Delete member data.
if($chk==delete) {
$dep_id = $_GET[dep_id];
$sql = "DELETE FROM department WHERE dep_id = '$dep_id'";
$result = mysql_db_query($db,$sql);
if ($result) {
echo "<center><h3>ลบข้อมูล dep_id='$dep_id' เรียบร้อยแล้ว</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}else{
echo "<center><h3>Error : ไม่สามารถลบข้อมูลได้เนื่องจากเกิดความผิดพลาดในการลบข้อมูล</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}
mysql_close();
}
?>
</body>
</html>
มันจะตรวจสอบแค่ให้ลบ แค่นั้น ถ้าเราจะใส่เงื่อนไขลงไป (คือว่า หนูมีล้งตารางอยู่คะ เอา id จาก tb_user มาเชคว่า อยู่แผนกใดๆ หรือไม่ ถ้าอยู่ ก็ห้ามลบแผนกนั้น ถ้าไม่มีใครอยู่ก็ ลบแผนกได้คะ) ตาราง tb_user กับ department พี่พอจะเข้าใจใช่มั้ยคะ
Date :
2011-02-23 16:35:40
By :
หน่อย
อีกอย่างที่ลืมบอกนะคะคือ
<?php
include("../connect.inc.php");
$sql = "SELECT COUNT(dep_id) AS cid FROM department WHERE dep_id=".$_POST["id"];
$query = mysql_query($sql)or die("Can't query");
$objquery = mysql_fetch_array($query);
echo $objquery['cid'];
?>
อันนี้น่ะค่ะ ต้อง SELECT จากตารางที่จะเช็คค่าซ้ำนะคะ อันนี้ยกตัวอย่างให้ดูเฉยๆ ต้องขออภัยที่ไม่ได้บอกแต่แรกค่ะ
อย่างเช่น คุณเช็คที่ตาราง user ก็ต้องไป select from user นะคะ
ประวัติการแก้ไข 2011-02-23 16:43:21
Date :
2011-02-23 16:39:26
By :
ultrasiam
เพิ่มในโค้ดนี้เลยก็ได้ค่ะ
if($chk==delete) {
$dep_id = $_GET[dep_id];
//เช็ค dep_id ถูกใช้หรือยัง
$sql = "SELECT COUNT(dep_id) AS cid FROM tb_user WHERE dep_id=".$dep_id;
$query = mysql_query($sql)or die(mysql_error());
$objquery = mysql_fetch_array($query);
if($objquery['cid']==0){
echo "<center><h3>Error : ไม่สามารถลบข้อมูลได้เนื่องจากถูกใช้งาน</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}else{
$sql = "DELETE FROM department WHERE dep_id = '$dep_id'";
$result = mysql_db_query($db,$sql);
if ($result) {
echo "<center><h3>ลบข้อมูล dep_id='$dep_id' เรียบร้อยแล้ว</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}else{
echo "<center><h3>Error : ไม่สามารถลบข้อมูลได้เนื่องจากเกิดความผิดพลาดในการลบข้อมูล</h3>";
echo "[ <a href='show_dep.php'>ดูข้อมูลทั้งหมด</a> ]</center>";
}
mysql_close();
}
}
Date :
2011-02-23 17:08:14
By :
ultrasiam
งง อะคะ คือว่าต้องเอาโค้ด ที่เป็น php ไปแทรกไว้ที่หน้า นี่คือหน้า show_dep.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>showตารางแผนก</title>
<style type="text/css">
<!--
.style2 {font-family: "MS Sans Serif"; font-size: 14px; }
body,td,th {
font-family: MS Sans Serif;
font-size: 14px;
}
.style3 {color: #FFFFFF}
.style4 {font-family: "MS Sans Serif"; font-size: 14px; color: #FFFFFF; }
-->
</style>
</head>
<body>
<p>
<?
include("../connect.inc.php");
mysql_query ("SET NAMES UTF8");
//สั่งให้ทำงาน
$sql="select * from department ORDER BY dep_id";
//$sql="select * from officer inner join department where(officer.office_id=department.dep_id)";
$db_query=mysql_db_query($db,$sql);
//หาจำนวน เรคคอดในตาราง
$num_rows=mysql_num_rows($db_query);
//หาจำนวนฟิลด์ในตาราง
$num_fields=mysql_num_fields($db_query);
echo"แสดงข้อมูลใน ตารางแผนก ในฐานข้อมูล $db<H3>";
//echo"<table border=1>";
//echo"<tr>";
////พิมพ์ส่วนหัวตาราง
//$i=0;
//while($i<$num_fields)
//{
// $field_name[$i]=mysql_field_name($db_query,$i);
// echo "<td bgcolor-skyblue>".$field_name[$i]."</td>";
// $i++;
//}
//เริ่มวนรอบแสดงข้อมูล
//$i=0;
//while($i<$num_rows)
//{
// $result=mysql_fetch_array($db_query);
//
// //$office_id=$result[office_id];
// $username= $result[username];
// $password= $result[password];
// $office_name= $result[office_name];
// $dep_id= $result[dep_id];
// $office_tele= $result[office_tele];
// $office_email= $result[office_email];
// $office_rights= $result[office_rights];
// echo"<tr>
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<th width="13%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style2 style3">ลำดับ</div></th>
<th width="24%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ชื่อแผนก</div></th>
<th width="30%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">ที่ตั้งของแผนก</div></th>
<th width="25%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style4">เบอร์โทรศัพท์</div></th>
<th width="8%" bordercolor="#F4F4F4" bgcolor="#FF33FF"><div align="center" class="style3">แก้ไข</div></th>
<th width="3%" bgcolor="#FF6699"><div align="center" class="style1 style12 style14">ลบ</div></th>
</tr>
</table>
<?
$a=0;
$b=1;
while($a < $num_rows)
{
$result = mysql_fetch_array($db_query);
$dep_id= $result[dep_id];
$dep_name= $result[dep_name];
$dep_location= $result[dep_location];
$dep_tel= $result[dep_tel];
?>
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="13%" align="center"><div align="left"><?echo "$dep_id"?></div>
<div align="center"></div><div align="center"></div><div align="center"></div></td>
<td width="24%"><div align="left"><?echo "$dep_name"?></div></td>
<td width="30%"><div align="left"><?echo "$dep_location"?></div></td>
<td width="25%"><div align="left"><?echo "$dep_tel"?></div></td>
<td width="8%" bgcolor="#FF00FF"><div align="center"><a href="edit_dep.php?dep_id=<?=$result[dep_id];?>"onclick="return confirm(' ต้องการแก้ไข <? echo $result[dep_name];?> จริงหรือไม่ ')"><img src="../image/Txt.png" alt="แก้ไข" name="edit" width="16" height="16" border="0"></a></div></td>
<td width="3%" bgcolor="#FF99FF">ลบ</td>
<td width="3%" bgcolor="#FF99FF"><div align="center" class="style11"><span class="style1"><a href="chk_dep.php?dep_id=<? echo $result[dep_id];?>&chk=delete"onclick="return doCallAja-x('<? echo $result[dep_id];?>')"><img src="../image/Trashcan empty.png" alt="ลบ" name="delete" width="16" height="16" border="0"></a></span></div></td>
</tr>
</table>
<?
$b++;
$a++;
}
echo"<center><br>จำนวนข้อมูลทั้งหมด = $num_rows</center>";
//";
// $i++;
//}
//echo"</tr>";
//echo"</table>";
//ปิดการติดต่อฐานข้อมูล
mysql_close();
?>
</p>
<p> </p>
<p><a href="add_dep.php">เพิ่มแผนก</a></p>
<p><a href="index_procurement.php">กลับสู้หน้าหลัก</a></p>
<p> </p>
</body>
</html>
ถูกใช่มะคะ ไม่งั้นจะเชคไม่ได้ แต่ว่า แทรกตรงไหนคะ
Date :
2011-02-23 17:26:46
By :
หน่อย
คนละหน้าค่ะ
Date :
2011-02-23 17:51:03
By :
หน่อย
หมายถึงหน้า แสดงตาราง มีหน้า ฟอร์มตารางคะ ก็คือ show_dep.php
หน้าเชค ก็คือ chk_dep.php คะ หน้า show_dep.php ต้องเอาโค้ดที่พี่ให้ไปแทรก ตรงไหนคะ ในหน้านี้ค่ะ ขอบคุณคะ
Date :
2011-02-23 17:55:03
By :
หน่อย
แวะมาให้กำลังใจคนตอบครับ
Date :
2011-02-23 22:39:04
By :
PlaKriM
Demo มาแล้วค่ะ
อธิบายก่อนว่า check แผนกถูกใช้งานด้วย Ajax นะคะ
โค้ด Ajax จะอยู่ที่ไฟล์ show_dep.php ฐานข้อมูลที่ใช้ยกตัวอย่างถูกสมมุติขึ้น จะเอาไปใช้ก็แก้ไขหน่อยนะคะ
การตรวจสอบค่า เป็นการนำรหัสแผนก หรือ dep_id ที่จะลบ ไปเช็คที่ตาราง tb_user
ถ้ามีรหัสนี้อยู่ จะคืนค่ามาเป็นจำนวน record แสดงว่าถูกใช้งานไ่ม่อนุญาตให้ลบ ถ้าไม่มี จะคืนค่าเป็น 0 สามารถลบได้
โดยเมื่อคลิก ลบ จะไปเรียก function ของ javascript ชื่อ check_dep ซึ่งส่งค่า dep_id(ใช้ตรวจสอบ) และ dep_name(ใช้แสดงผล) ตรงนี้
Quote: <a onclick="check_dep(<?php echo $result["dep_id"]; ?>,'<?php echo $result["dep_name"]; ?>')" style="cursor:pointer">ลบ</a>
ซึ่งเป็น function Ajax การทำงานก็คือให้ Ajax ส่งค่าไปยัง url ที่กำหนด ซึ่งก็คือ
Quote: var url = 'source.php?op=chkdep&dep_id='+dep_id;
และรอรับค่าที่จะ return กลับมาให้ซึ่งก็คือค่าที่ถูกแสดงหรือ echo ออกมาใน source.php แล้วนำค่าที่ได้มาตรวจสอบ
ถ้าคืนค่ามาเป็น 0 ก็คือ สามารถลบได้ ก็ให้ user ยืนยันว่าต้องการลบ จากนั้นจะ redirect ไปยังไฟล์ delete
ถ้าคืนค่ามาไม่ใช่ 0 ก็แจ้งว่า แผนกนี้ถูกใช้งาน ไม่สามารถลบได้ ไปดูโค้ดกันค่ะ
show_dep.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>SHOW DEPARTMENT</title>
<style type="text/css">
<!--
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
</head>
<body>
<table width="500" border="0" align="center" cellpadding="2" cellspacing="0" style="border:#009966 solid 1px;">
<tr>
<td width="20%" bgcolor="#00CC99" class="style1"><div align="center">รหัสแผนก</div></td>
<td bgcolor="#00CC99"><div align="center"><span class="style1">ชื่อแผนก</span></div></td>
<td width="10%" bgcolor="#00CC99"><div align="center"><span class="style1"></span></div></td>
</tr>
<?php
include("connect.inc.php");
$sql_list="SELECT * FROM department ORDER BY dep_id";
$query_list=mysql_query($sql_list);
while($result=mysql_fetch_array($query_list)){
?>
<tr>
<td align="center"><?php echo $result["dep_id"]; ?></td>
<td><?php echo $result["dep_name"]; ?></td>
<td class="style1" align="center"><a onclick="check_dep(<?php echo $result["dep_id"]; ?>,'<?php echo $result["dep_name"]; ?>')" style="cursor:pointer">ลบ</a></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
<script>
function check_dep(dep_id,dep_name){
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'source.php?op=chkdep&dep_id='+dep_id;
var pmeters="";
HttPRequest.open('GET',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function(){
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText==0){// ถ้า เท่ากับ 0 หมายความว่าไม่ซ้ำ
if(confirm(" ต้องการลบ "+dep_name+" ออกจากระบบจริงหรือไม่ ")){
window.location="source.php?op=delete&dep_id="+dep_id+"&dep_name="+dep_name //redirect ไปหน้า source ส่ง op=delete เพื่อลบข้อมูล
}
}else{
alert("แผนก "+dep_id+"-"+dep_name+" ถูกใช้งานอยู่ ไม่สามารถลบได้");
}
}
}
}
</script>
หน้าตาเป็นแบบนี้ค่ะ
ถ้าเช็คแล้วไม่ถูกใช้งานจะเป็นแบบนี้
ประวัติการแก้ไข 2011-02-24 00:51:11 2011-02-24 00:54:13 2011-02-24 00:59:01 2011-02-24 00:59:57
Date :
2011-02-24 00:50:31
By :
ultrasiam
ต่อไปมาดูโค้ด PHP ที่ใช้ตรวจสอบนะคะ คือไฟล์ source.php
สังเกตที่ function check_dep ใน url จะส่ง op มาด้วย เพื่อให้ source ตรวจสอบว่า เป็นการเช็คแผนก เผื่อไว้เพิ่มโค้ดอื่น ๆ ภายหลัง
ที่รับด้วย $_REQUEST ก็เผื่อไว้ว่า บางทีส่ง GET บางทีส่ง POST มาไม่เหมือนกัน ใช้ $_REQUEST เลยดีกว่า รับได้ทุกอย่าง ^^ ไปดูโค้ดกัน
Code (PHP)
<?php
include("connect.inc.php");
$op=$_REQUEST['op'];
if($op=="chkdep"){//เช็ค op เผื่อเพิ่ม source อื่น ๆ เช่น insert edit delete
$dep_id=$_REQUEST['dep_id'];
$sql_check="SELECT COUNT(dep_id) AS cdep FROM tb_user WHERE dep_id=$dep_id";
$query_check=mysql_query($sql_check);
$check=mysql_fetch_array($query_check);
echo $check['cdep'];
}else if($op=="delete"){
$dep_id=$_REQUEST['dep_id'];
$dep_name=$_REQUEST['dep_name'];
echo "Delete $dep_id $dep_name...";
}
?>
ประวัติการแก้ไข 2011-02-24 01:02:08
Date :
2011-02-24 00:57:13
By :
ultrasiam
หน้าแสดง ข้อมูลเจ้าหน้าที่ทั้งหมดค่ะ
หน้า show_dep_ajax ที่เอาของพี่มาค่ะ
หน้า run ซึ่งไม่สามารถได้เลย ทุกแผนก ทั้งที่ยังว่างคะ
ปัญหาก็คือ ไม่สามารถลบได้เลยสักอันเดียวคะ หนูก็ไม่เข้าใจคะ
Date :
2011-02-24 17:27:36
By :
หน่อย
Load balance : Server 00