ช่วยดูโค้ดหน่อยนะค่า มันไม่ทำงาน (สร้างระบบ admin เพื่อกำหนดสถานะให้สมาชิก)
การนำข้อมูลออกมาแสดงผล โดยจะมีการตรวจสอบสถานะในฟิลด์ status ของสมาชิกในระบบก่อน ว่า ถ้าค่าในฟิลด์ status นั้นเป็น 0 ก็จะให้มันแสดงผลออกมาว่า Inactive และถ้าค่าในฟิลด์ status นั้นไม่ใช่ 0 ก็จะให้มันแสดงผลออกมาว่า Active
แล้วที่มีปัญหาคือ จะกดจาก Inactive ให้เป็น Active แล้วไม่ได้คะ
ทำการ Update สถานะของสมาชิกว่า Active หรือ Inactive โดยที่เมื่อเรากำหนดสถานะนั้นๆให้กับสมาชิกแล้ว ระบบก็จะทำการส่งเมล์ไปแจ้งให้สมาชิกคนนั้นๆทราบด้วยว่า สถานนะของเค้าที่เป็นสมาชิกในระบบตอนนี้เป็นอย่างไรอยู่
<?php
ob_start(); //เปิดการใช้งาน output buffering
/* ส่วนนี้เป็นการป้องกันผู้ใช้เรียกไฟล์นี้โดยไม่ผ่านการล็อกอิน โดยถ้าผู้ใช้ยังไม่ได้ล็อกอิน
เราจะสั่ง redirect ไปยังไฟล์ login.php */
include ("config.inc.php");
/*if (strcmp($admin_passwd, $adminarea) != 0) {
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
}*/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Admin Page</title>
</head>
<body>
<br>
<table width="500" align="center" cellspacing="1">
<tr>
<th width="40" ><div align="center"><strong>ลำดับ</strong></div></td>
<th width="100"><div align="center"><strong>ชื่อสมาชิก</strong></div></td>
<th width="70" ><div align="center"><strong>สถานะ</strong></div></td>
</tr>
<?php
///////////// // คำสั่ง SQL ให้เลือกใช้งานตาราง ///////////////////////////////////////////////
$sql = "SELECT * FROM userinfo";
if ( !$page )
$page = 1;
$prev_page = $page - 1;
$next_page = $page + 1;
$result = mysql_query( $sql );
$page_start = ( $per_page * $page) - $per_page;
$num_rows = mysql_num_rows( $result );
if ( $num_rows <= $per_page )
$num_pages = 1;
else if ( ( $num_rows % $per_page ) == 0 )
$num_pages = ( $num_rows / $per_page );
else
$num_pages = ( $num_rows / $per_page ) + 1;
$num_pages = ( int ) $num_pages;
if ( ( $page > $num_pages ) || ( $page < 0 ) )
print "จำนวน $page มากกว่า $num_pages";
/////////////// คำสั่ง SQL กำหนดลิมิต ให้แสดงผลต่อ 1 หน้า///////////////////////////////
$sql .= " LIMIT $page_start, $per_page";
$result = mysql_query( $sql );
//////////////////////// การ Update สถานะ ของ User และทำการส่งเมล์หา User คนนั้นๆ /////////////////
switch ($status){
case "Active";
$sql="Update userinfo set status='0' WHERE id = '$id';";
mysql_db_query($db,$sql);
header("Location: $PHP_SELF");
$sql2 = "select*from userinfo WHERE id = '$id';";
$result2 = mysql_query($sql2);
$to_member = mysql_result($result2,'','email');
$name = mysql_result($result2,'','logname');
$message_inactive="สวัสดีครับคุณ $logname \nสถานะของคุณตอนนี้คือ Inactive ไม่สามารถใช้งานระบบได้ชั่วคราว \nเนื่องจากมีสาเหตุบางประการ จึงทำให้คุณไม่สามารถเข้าไปใช้งานระบบตามปกติได้ \nกรุณาติดต่อกลับผู้ดูแลระบบโดยตรงได้ที่เว็บไซต์ $website ครับ \n\n\n จึงเรียนมาเพื่อทราบ\n $admin_sign_name \n $admin_mail";
mail($to_member,$subject_inactive_member,$message_inactive,"From: ". $admin_mail);
header("Location: $PHP_SELF");
break;
case "Inactive";
$sql="update userinfo set status='1' WHERE id = '$id';";
mysql_db_query($db,$sql);
$sql2 = "select*from userinfo WHERE id = '$id';";
$result2 = mysql_query($sql2);
$to_member = mysql_result($result2,'','email');
$name = mysql_result($result2,'','logname');
$username = mysql_result($result2,'','logname');
$password = mysql_result($result2,'','psswd');
$message_active="สวัสดีครับคุณ $logname \nสถานะของคุณตอนนี้ได้ Active เรียบร้อยแล้ว \nคุณสามารถเข้าไปใช้งานระบบตามปกติ โดยที่รายละเอียดในการเข้าระบบของคุณคือ \nชื่อเข้าระบบ : $logname \nรหัสผ่าน : $password \nได้ที่เว็บไซต์ $website ครับ \n\n\n ด้วยความนับถือ\n $admin_sign_name \n $admin_mail";
mail($to_member,$subject_active_member,$message_active,"From: ". $admin_mail);
header("Location: $PHP_SELF");
break;
}//จบ switch
///////////////////////////////////// จบการ Update สถานะ ของ User ////////////////////////////////////////////////////////////
////////////////////// นำข้อมูลออกมาแสดงผล ////////////////////////////////////////////////
while ( $rs = mysql_fetch_array( $result ) ) //นำค่าี่ที่ผ่านการคิวรี่จากตัวแปร $result มาทำการวนลูปเพื่อเอาค่าในแต่ละฟิลด์ออกมาโชว์แสดงผล
{
//ตรวจสอบถ้าค่าเท่ากับ 0 ก็กำหนดให้แสดงผลคำว่า Inactive หรือไม่ใช่ 0 ให้แสดงผลเท่ากับ Active
if($rs[status]==0){ $rs[status]="Inactive"; }else{ $rs[status]="Active"; }
echo"<tr>
<td align=center>$rs[id]</td>
<td>$rs[logname]</td>
<td align=center><a href=$PHP_SELF?id=$rs[id]&status=$rs[status]>$rs[status]</a></td>
</tr>";
}//จบ while
echo"</table>";
//////////////////////////////จบการนำข้อมูลออกมาแสดงผล /////////////////////////////////////////////////////
?>
<!- - แสดงผลจำนวนเรคคอร์ดของข้อมูล จำนวนหน้าและลิงค์หน้าต่อๆไป - - !>
<br><div align="center" class="page">รวมทั้งหมด <b><?php echo $num_rows; ?></b> เรคคอร์ด <b><?php echo $num_pages; ?></b> หน้า :
<?php
////////////////// สร้างปุ่มย้อนกลับ ///////////////////////////////
if ( $prev_page )
echo "<a href=\"$PHP_SELF?page=$prev_page\"><<กลับไป </a>";
////////////////// สร้างตัวเลขหน้า ////////////////////////////////
for ( $i=1; $i<=$num_pages; $i++ )
{
if ( $i != $page)
echo "[<a href=\"$PHP_SELF?page=$i\">$i</a>]";
else
echo " <b>$i</b> ";
}
/////////////////// สร้างปุ่มเดินหน้า /////////////////////////////////////
if ( $page != $num_pages )
echo "<a href=\"$PHP_SELF?page=$next_page\"> หน้าต่อไป >></a>";
////////////////// ปิดการเชื่อมต่อฐานข้อมูล ////////////////////////////
mysql_close();
?>
</div>
</body>
</html>
<?php ob_end_flush(); //ส่งข้อมูลที่อยู่ในบัฟเฟอร์ไปให้บราวเซอร์ ?>
Tag : PHP
ประวัติการแก้ไข 2011-08-18 15:50:06 2011-08-18 17:14:15
Date :
2011-08-18 15:49:37
By :
Poster
View :
1658
Reply :
4
case "Active";
062.$sql="Update userinfo set status='0' WHERE id = '$id';";
case "Inactive";
075.$sql="update userinfo set status='1' WHERE id = '$id';";
ไม่ทราบว่า ตรรกะ error หรือ โปรแกรมเออเร่อ คับ
Date :
2011-08-18 16:02:50
By :
pjgunner.com
ยังไงคะ ?
คือ ไม่มีไร error คะ แต่กด Inactive มันไม่เปลี่ยนเป็น Active คะ
Date :
2011-08-18 16:16:45
By :
Poster
อยากรู้เหมือนกันต้องแก้ตรงไหน
Date :
2013-07-25 16:15:28
By :
ultraman
switch ($status)
ตัวแปร $status ไม่มีที่มา !?
Date :
2013-07-25 16:20:35
By :
{Cyberman}
Load balance : Server 01