มีปัญหาการอัปเดทข้อมูลไม่ได้ครับ php mysql รบกวนด้วยครับ
สวัดดีครับ
มีปัญหาการอัปเดทข้อมูลไม่ได้ครับ หลังจากที่ใส่รหัสนักเรียน คนที่ 5-6 เนื่องจากอยู่ต่างชั้นกัน กับนักเรียน คนที่ 1-4
ก่อนเพิ่มรหัสนักเรียน คนที่ 5-6 ใช้งานได้ครับ รบกวนด้วยครับ
โครงสร้างฐานข้อมูล
ลิ้งจะส่งไปยัง form.php
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 10px;
}
th{
background-color:lightgreen;
}
td1 {
padding: 0.3em 0.3em;
text-align: rigth;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="author" content="Codrops" />
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
<link rel="stylesheet" type="text/css" href="css/demo.css" />
<link rel="stylesheet" type="text/css" href="css/component.css" />
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body >
<?
include 'database.php';
$sql = "SELECT classID,c_name
FROM class
WHERE classID = '".$_GET["classID"]."' ";
$result = mysqli_query($link,$sql);
$objResult = mysqli_fetch_array($result);
?>
<h3 align=center>ข้อมูลนักเรียนชั้น <?=$objResult["c_name"];?</h3>
<hr>
<?php
$sql = "Select student.StudentID,student.Name,student.Surname,student.classID,check.ma,check.kad,check.la,check.kid
From student INNER JOIN check ON student.StudentID = check.StudentID
WHERE classID = '".$_GET["classID"]."' ORDER BY StudentID ASC ";
$result = mysqli_query($link,$sql);
?>
<Form Action="result.php" Method="Post">
<?php
echo "<table border=1px align=center>";
echo "<th>StudentID</th><th>Name&Surname</th><th>ma</th><th>kad</th><th>la</th><th>kid</th>";
while ($data = mysqli_fetch_array($result))
{
$choice4 = $data['kid'];
$choice3 = $data['la'];
$choice2 = $data['kad'];
$choice1 = $data['ma'];
$surname = $data['Surname'];
$name = $data['Name'];
$no = $data['StudentID'];
echo "<tr>";
echo "<td align=center width=15%px><Input Type=Radio Name=q[$no] Value=4></td>";
echo "<td align=center width=15%px><Input Type=Radio Name=q[$no] Value=3></td>";
echo "<td align=center width=15%px><Input Type=Radio Name=q[$no] Value=2></td>";
echo "<td align=center width=15%px><Input Type=Radio Name=q[$no] Value=1 checked></td>";
echo "<td align=rigth >$name $surname</td>";
echo "<td bgcolor=lightblue align=center>$no</td></tr>";
}
echo "</table>
<center><button type='submit' value='Submit'>Save hudur</button>
<button type='reset' value='Reset'>Reset</button></center>
</Form>";
?>
<?php
mysqli_close($link);
?>
</body>
</html>
Form จะส่งค่าไปยัง result.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 10px;
}
th{
background-color:orange;
}
</style>
</head>
<body>
<h2 align=center>ข้อมูลนักเรียน</h2>
<hr>
<?php
include 'database.php';
$sql = "Select student.StudentID,student.Name,student.Surname,student.classID,check.ma,check.kad,check.la,check.kid
From student INNER JOIN check ON student.StudentID = check.StudentID
WHERE classID = '".$_GET["classID"]."' ORDER BY StudentID ASC ";
$result = mysqli_query($link,$sql);
echo "<table align=center>";
echo "<th>StudentID</th><th>Name&Surname</th><th>ma</th><th>kad</th><th>la</th><th>kid</th>";
$fld=array('Name','ma', 'kad','la','kid');
$result = $link->query('Select student.StudentID,student.Name,student.Surname,student.classID,check.ma,check.kad,check.la,check.kid
From student INNER JOIN check ON student.StudentID = check.StudentID
WHERE classID = '".$_GET["classID"]."' ORDER BY StudentID ASC');
while($data = $result->fetch_assoc() ){
$no = $data['StudentID'];
$name = $data['Name'];
$surname = $data['Surname'];
$key=$fld[$_POST['q'][$no]];
$data[$key]++;
$sql = 'UPDATE check SET '.$key.' = '.$data[$key]." WHERE StudentID=$no";
$link->query($sql) or die( $sql . "<br>" . $link->error);
echo "<tr>
<td align=center width=20%px>$data[kid]</td>
<td align=center width=20%px>$data[la]</td>
<td align=center width=20%px>$data[kad]</td>
<td align=center width=20%px>$data[ma]</td>
<td align=right width=20%px>$name $surname</td>
<td bgcolor=lightgreen align=center>$no</td>
</tr>";
}
echo "</table><br>";
echo "<form action='form.php'>
<center><input type='submit' value='กลับสู่หน้าหลัก'></center>
</form>";
mysqli_close($link);
?>
</body>
</html>
โค้ดก็อปมาจาก https://www.thaicreate.com/php/forum/119396.html เพิ่มเติม INNER JOINTag : PHP, MySQL, HTML, CSS, HTML5, Linux
ประวัติการแก้ไข 2017-04-23 14:28:06 2017-04-23 14:29:30
Date :
2017-04-23 14:25:33
By :
Azhary-Pk
View :
815
Reply :
5
Code (PHP)
$sql = 'UPDATE check SET '.$key.' = '.$data[$key]." WHERE StudentID=$no";
echo $sql;
$link->query($sql) or die( $sql . "<br>" . $link->error);
มันแสดง SQL Statement ถูกหรือเปล่าครับ
Date :
2017-04-23 21:06:13
By :
mr.win
ผมไม่ทราบครับ จะเช็คยังไงครับว่ามันแสดง SQL Statement ถูกหรือเปล่า หลังจากกดปุ่ม save มันไม่วิ่งไปหน้า result.php
ถ้าเเก้ข้อมูลนักเรียนทั้งหมดใน table student คอลั้มน์ classID ให้อยู่ชั้นเดียวกัน สามารถบันทึกได้ครับ หลังจากกดปุ่ม save มันวิ่งไปหน้า result.php
เเต่ความเป็นจริง นักเรียนทั้งหมดไม่ได้อยู่ชั้นเดียวกัน จึงอยากบันทึกเเยกตามชั้นเรียน WHERE classID = '".$_GET["classID"]."'
Date :
2017-04-23 22:06:39
By :
Azhary-Pk
ผมลองตัดโค้ดไฟล result.php ให้เหลือคำสั่งอัปเดทอย่างเดียว
Code (PHP)
<?php
$fld=array('Name','ma', 'kad','la','kid');
$result = $link->query('Select student.StudentID,student.Name,student.Surname,student.classID,check.ma,check.kad,check.la,check.kid
From student INNER JOIN check ON student.StudentID = check.StudentID
WHERE classID = '".$_GET["classID"]."' ORDER BY StudentID ASC');
while($data = $result->fetch_assoc() ){
$no = $data['StudentID'];
$name = $data['Name'];
$surname = $data['Surname'];
$key=$fld[$_POST['q'][$no]];
$data[$key]++;
$sql = 'UPDATE check SET '.$key.' = '.$data[$key]." WHERE StudentID=$no";
$link->query($sql) or die( $sql . "<br>" . $link->error);
}
?>
มันวิ่งไปหน้า result.php พร้อมเเสดง error ออกมาครับ
Code
UPDATE check SET = 1 WHERE StudentID=1111
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1 WHERE StudentID=1111' at line 1
Date :
2017-04-23 23:31:27
By :
Azhary-Pk
จะเเก้ยังไงครับ ผมดูเเล้วตามลิ้งที่ Admin โพส ก้อมึนอยู่ดีครับ ไม่รู้จะเเก้ตรงไหน รบกวนด้วยครับ รู้สึกปวดหัวเเล้วครับ
Date :
2017-04-24 13:29:52
By :
Azhary-Pk
Load balance : Server 02