ช่วยดูโค้ดการเปลี่ยนแปลงสถานะในฐานข้อมูลให้หน่อยค่ะ มันไม่เข้าไปเปลี่ยนในฐานข้อมูล
debug ดูบรรทัดที่ 5 ครับ ว่ามีค่า $_GET['id'] ส่งมาหรือเปล่า
Date :
2017-12-25 09:50:24
By :
mangkunzo
ถูกต้องน่ะครับ มี Enum('1','0')
0 Default = ยังไม่โอน
1 = โอนแล้ว
-------------------------------------
เวลา Update <input type ="hidden" name="Status_Hidden" values ="1"> or order_status = 1 (ไปเลย)
------------------------------------
ถ้า Login มาถูกต้อง $_SESSION[] ก็น่าจะมา
------------------------------------
จะ Insert หลังจาก Update ก็ได้สิครับ
อันสุดท้ายจะยากหน่อย มีหลายวิธี
1. if(isset($_POST["Update"]) (" Submit ชื่อ Update ") Or If(isset($result)) ทำในหน้าเดี่ยว จะยากเยอะนิดๆ
2. หลังจาก update ไปอีกหน้า 1 ตามด้วย GET ที่ส่งไป
- SELECT WHERE GET ค่าที่ได้
- สร้าง From รับค่า
- Fetch_assoc เอาค่าที่ได้ แสดง ใน <input type ="text" name ="txt1" values ="<?php echo $Row["ID"]?>">
- if(isset($_POST["upadet"]))
- Code update ........ id ='".$_POST["txt1"]."'...............................
จบครับ แนวทางไม่ยาก
Date :
2017-12-25 10:23:21
By :
Hararock
ตรง $_GET[id] ถ้าเรามีคลาสที่เก็บ session ไว้แบบ $login_id = $_SESSION['login_id'] แบบนี้เอามาแทนที่ตรง get ได้ไหมคะ? ,หรือมันไม่เกี่ยวกัน?
ตรง Update ต้องสร้าง hidden ขึ้นมาด้วยใช่ไหมคะ?
Date :
2017-12-25 16:31:14
By :
ny2003
คือตรงลิ้งค์ที่เป็นปุ่มอ่ะค่ะ มันต้องมี name ด้วยมั้ยคะ?
Code (PHP)
echo "<td><a href=\"main2.php?approve_id=$row[0]\" class=\"btn btn-success\" >โอนแล้ว</a></td>";
แล้ว get ไม่ใช่ว่าพอกดลิ้งค์ตรงนี้ไปแล้วก็จะรับค่าลิ้งค์มาไว้ตรง isset เหรอคะ?
Code (PHP)
if(isset($_GET['id'])){
$approve_id=$_GET['id'];
$sql_approve="update orders set order_status=1 where id_s =$approve_id";
$result= mysqli_query($dbcon, $sql_approve);
Date :
2017-12-25 17:12:51
By :
ny2003
ตอนนี้ไม่ทำส่วนของ insert แล้วค่ะ อยากให้เปลี่ยนค่าเฉยๆ แต่มันไม่เปลี่ยนให้เลย
Date :
2017-12-25 17:28:29
By :
ny2003
ลองดูแบบนี้ครับ action ใน form เดียวทั้งหมด
Code (PHP)
////// section one
<?php
include 'session.php';
require 'connectdb.php';
$act=$_GET['act'];
if($act=='del')
{
$id=$_GET['id'];
$sql="update orders set order_status=2 where id_s =$id";
$result= mysqli_query($dbcon, $sql);
echo "Record deleted successfully";
}else if($act=='update'){
$id=$_GET['id'];
$sql = "delete from orders where id_s =$id";
$result= mysqli_query($dbcon, $sql);
echo "Record updated successfully";
}
?>
////// section two
while ($row = mysqli_fetch_row($query)) {
echo "<tr>";
echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
//ลิ้งค์ del และ ลิ้งค์/ปุ่มกด ที่ใช้เปลี่ยนสถานะใน order_status ของตาราง orders
echo "<td><a href=\"?act=del&id=$row[0]\" >Del</a></td>";
echo "<td><a href=\"?act=update&id=$row[0]\" class=\"btn btn-success\" >โอนแล้ว</a></td>";
echo "</tr>";
}
แนะนำ
$row[0] พวกนี้ไม่แนะนำให้ใส่เป็น num ควรใส่เป็นชื่อ field มากกว่า เพื่อการใช้งานที่ถูกต้องและชัดเจน
ประวัติการแก้ไข 2017-12-26 09:58:44 2017-12-26 09:59:34
Date :
2017-12-26 09:57:40
By :
dudesaranyu
ค่าในdatabase ก็ยังไม่เปลี่ยนค่ะ พอรันแล้วมันขึ้นเออเรอร์ด้านบน Notice: Undefined index: act in C:\xampp\htdocs\PhpProject_EngGoal\lo2\main2.php on line 8 เกี่ยวมั้ยคะ?ที่เราไม่ได้สร้าง form ขึ้นมา ลองใส่form แล้วแต่มันก็เป็นสีแดงอ่ะค่ะ ไม่แน่ใจว่าต้องใส่ส่วนไหน
ประวัติการแก้ไข 2017-12-26 14:36:35
Date :
2017-12-26 14:19:27
By :
ny2003
ขอดู code ล่าสุดครับ
Date :
2017-12-26 14:45:50
By :
dudesaranyu
Code (PHP)
<!DOCTYPE html>
<?php
include 'session.php';
require 'connectdb.php';
$act=$_GET['act'];
if($act=='update')
{
$id=$_GET['id'];
$sql2="update orders set order_status=1 where id_s =$id"; // เปลี่ยน $sql เป็น $sql2 เพราะจะได้ไม่ซ้ำกับข้างล่าง ไม่แน่ใจว่าเข้าใจถูกไหม..
$result2= mysqli_query($dbcon, $sql2);
echo "Record update successfully";
} else if($act=='del'){
$id=$_GET['id'];
$sql = "delete from orders where id_s =$id";
$result= mysqli_query($dbcon, $sql);
echo "Record updated successfully";
}
?>
<html>
<head>
<meta charset="UTF-8">
<title>Admin</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<?php
echo "<br>";
echo "ADยินดีต้อนรับคุณ $s_login_username" ;
?>
<div align="center">
<form method="POST">
<input type="search" name="keyword" placeholder="ใส่คำค้นหา" size="15">
<input type="submit" name="submit" value="ค้นหา" >
</form>
<?php
if(isset($_POST['submit'])) $keyword=$_POST['keyword'];
else $keyword="";
$keywords= explode(",", $keyword); //1
$sql= "SELECT `id_s`,`login_username`,`id_course`,`c_qty`,`total`,`order_date` FROM `tb_order` ";
$clause= " where ";
for ($index = 0; $index < count($keywords); $index++) {
$clause.= " (id_s like '%$keywords[$index]%' or login_username like '%$keywords[$index]%' or id_course like '%$keywords[$index]%' ) ";
if($index<(count($keywords)-1))$clause.=" and ";
}
$sql.=$clause; //2
$sql= "SELECT `order_id`,`id_s`,`order_date` FROM `orders` ";
$clause= " where ";
for ($index = 0; $index < count($keywords); $index++) {
$clause.= " ( order_id like '%$keywords[$index]%' or id_s like '%$keywords[$index]%' or order_date like '%$keywords[$index]%' ) ";
if($index<(count($keywords)-1))$clause.=" and ";
}
$clause.=" ORDER by order_date DESC ";
$sql.=$clause; //2
echo "<br>$sql<br>";
$query= mysqli_query($dbcon, $sql);
$num_rows= mysqli_num_rows($query);
echo "<br><br>ค้นพบข้อมูลทั้งหมด $num_rows record<br><br>";
if($num_rows>0){
echo "<table class=\"one\">";
while ($row = mysqli_fetch_row($query)) {
echo "<tr>";
echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
echo "<td><a href=\"viewCustomer.php?del_id=$row[0]\" onclick=\"return confirmDel()\" >Del</a></td>";
echo "<td><a href=\"?act=update&id=$row[0]\" class=\"btn btn-success\" >โอนแล้ว</a></td>";
echo "</tr>";
}
echo "</table>";
}
?>
</div>
<hr>
ในdatabaseของ status ต้องตั้งค่าเป็น enum ใช่มั้ยคะ? ตอนนี้ให้ 0 เป็นยังไม่ชำระเงิน 1 เป็นชำระแล้ว
Date :
2017-12-26 15:28:37
By :
ny2003
Code (PHP)
<!DOCTYPE html>
<?php
include 'session.php';
require 'connectdb.php';
?>
<html>
<head>
<meta charset="UTF-8">
<title>Admin</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<?php
echo "<br>";
echo "ADยินดีต้อนรับคุณ $s_login_username" ;
// section one
if(isset($_GET['act'])) //เมื่อมีค่าไม่เท่า NULL
{
$act=$_GET['act']; //ดึงค่า เข้า varieble
$id=$_GET['id']; //ดึงค่า เข้า varieble
if($act=='update') // เมื่อ varieble == update
{
// codition
$sql2="update orders set order_status=1 where id_s =$id"; // เปลี่ยน $sql เป็น $sql2 เพราะจะได้ไม่ซ้ำกับข้างล่าง ไม่แน่ใจว่าเข้าใจถูกไหม..
$result2= mysqli_query($dbcon, $sql2);
echo "Record update successfully";
}else if($act=='del'){ // เมื่อ varieble == del
// condition
$sql = "delete from orders where id_s =$id";
$result= mysqli_query($dbcon, $sql);
echo "Record updated successfully";
}
}
// end
?>
<div align="center">
<form method="POST">
<input type="search" name="keyword" placeholder="ใส่คำค้นหา" size="15">
<input type="submit" name="submit" value="ค้นหา" >
</form>
<?php
if(isset($_POST['submit'])) $keyword=$_POST['keyword'];
else $keyword="";
$keywords= explode(",", $keyword); //1
$sql= "SELECT `id_s`,`login_username`,`id_course`,`c_qty`,`total`,`order_date` FROM `tb_order` ";
$clause= " where ";
for ($index = 0; $index < count($keywords); $index++) {
$clause.= " (id_s like '%$keywords[$index]%' or login_username like '%$keywords[$index]%' or id_course like '%$keywords[$index]%' ) ";
if($index<(count($keywords)-1))$clause.=" and ";
}
$sql.=$clause; //2
$sql= "SELECT `order_id`,`id_s`,`order_date` FROM `orders` ";
$clause= " where ";
for ($index = 0; $index < count($keywords); $index++) {
$clause.= " ( order_id like '%$keywords[$index]%' or id_s like '%$keywords[$index]%' or order_date like '%$keywords[$index]%' ) ";
if($index<(count($keywords)-1))$clause.=" and ";
}
$clause.=" ORDER by order_date DESC ";
$sql.=$clause; //2
echo "<br>$sql<br>";
$query= mysqli_query($dbcon, $sql);
$num_rows= mysqli_num_rows($query);
echo "<br><br>ค้นพบข้อมูลทั้งหมด $num_rows record<br><br>";
if($num_rows>0){
echo "<table class=\"one\">";
while ($row = mysqli_fetch_row($query)) {
echo "<tr>";
echo "<td>$row[0]</td>";
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
echo "<td><a href=\"?act=del&id=$row[0]\" >Del</a></td>"; // อ้างอึงจาก Current page ?
echo "<td><a href=\"?act=update&id=$row[0]\" class=\"btn btn-success\" >โอนแล้ว</a></td>"; // อ้างอึงจาก Current page ?
echo "</tr>";
}
echo "</table>";
}
?>
</div>
<hr>
Date :
2017-12-27 09:41:56
By :
dudesaranyu
Load balance : Server 00