แสดงบทความที่มีป้ายกำกับ การดึงข้อมูลจาก Database แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ การดึงข้อมูลจาก Database แสดงบทความทั้งหมด

วันศุกร์ที่ 6 มีนาคม พ.ศ. 2563

การดึงข้อมูลจาก Database ออกมาแสดง


 ในบทนี้จะมาเสนอวิธีทำการดึงข้อมูลจากฐานข้อมูลออกมาแสดงที่หน้าเว็ปไซต์หลังจากที่ได้ทำการเพิ่มข้อมูลเข้าไปแล้วโดยจะนำเสนอการใช้ while Loop ในการใช้งานโดยการทำงานหลักๆนั้นจะทำการสร้างตัวแปรมารับค่าอเรย์จากนั้นสั่งให้ทำการนำค่าที่ได้ในอเรย์ออกมาแสดงที่หน้าเว็ปไซต์

ตัวอย่างการใช้ while($ตัวแปรรับค่า = mysql_fetch_array($result))
{
$ตัวแปรรับค่า['ชื่อคอลั่มที่ต้องการแสดงค่า'];
}

Code ตัวอย่าง
<table width='500' align='center' border='1'>
<tr>
<td align='center'>No.</td>
<td align='center'>Name</td>
<td align='center'>LastName</td>
</tr>
<?php
include('config/config.php');
$strsql = "SELECT * FROM user ORDER BY id DESC"; //คำสั่งให้เลือกข้อมูลจาก TABLE ชื่อ user เรียงลำดับจากมากไปน้อย
$result = mysql_query($strsql);
while($rs = mysql_fetch_array($result))  //สร้างตัวแปร $rs มารับค่าจากการ fetch array
{
?>
<tr>
<td><?php echo $rs['id'];?></td> //สั่งให้แสดงค่าตัวแปรที่เก็บค่า id ออกมาแสดง
<td><?php echo $rs['name'];?></td> //สั่งให้แสดงค่าตัวแปรที่เก็บค่า name ออกมาแสดง
<td><?php echo $rs['lastname'];?></td> //สั่งให้แสดงค่าตัวแปรที่เก็บค่า lastname ออกมาแสดง
</tr>
<?php } ?> //ปิด } while Loop
</table>

การดึงข้อมูลจาก Database ออกมาแก้ไข Edit Data

 การดึงข้อมูลจาก Database ออกมาแก้ไข Edit Data


หลังจากที่เราได้ทำการ insert data เข้าไปเก็บในฐานข้อมูลแล้วนั้นเราก็จะทำการสร้างปุ่มสำหรับการแก้ไขข้อมูลนั้นซึ่งถือว่าเป็นฟังชั่นพื้นฐานสำหรับการเขียนโปรแกรมเลยก็ว่าได้ จะกล่าวถึงหลักการโดยคร่าวๆได้ว่าหลังจากที่เราคลิกที่ปุ่มแก้ไขแล้วระบบจะทำการดึงข้อมูลนั้นๆออกมาแสดงที่หน้า UI เพื่อให้เราทำการแก้ไขข้อมูลได้ ก่อนที่จะทำการจัดเก็บเข้าไปใหม่ลงในฐานข้อมูล หรือเรียกง่ายๆว่าการ Update Data นั่นเองซึ่งหากมีข้อมูลที่เก็บในฐานข้อมูลเป็นจำนวนมากๆ ระบบจะรู้ได้อย่างไรล่ะ? ว่าเราต้องการแก้ไขข้อมูลไหน ฉนั้นเราจึงต้องส่งค่า ID ของข้อมูลนั้นๆกลับมาที่หน้าเพจสำหรับการ Updata Data ด้วยโดยจะส่งค่ามาโดยใช้ Method GET จากนั้นหน้าที่ทำการดึงข้อมูลออกมาแสดงก็ประกาศรับค่า Method GET ที่ส่งมาแล้วทำการ Select Data จากฐานข้อมูลออกมาเพื่อทำการแก้ไข

Code
SELECT * FROM TABLENAME SET somecolumn1=somevalue1,somecolumn2=somevalue2 WHERE somecolumn='somevalue';

ตัวหนังสือสีแดงหมายถึงค่าที่เราต้องเปลี่ยนตามข้อมูลในฐานข้อมูลเรา เช่น TABLENAME หมายถึง ชื่อTABLEที่เก็บข้อมูล

สำหรับการส่งค่า ID ของข้อมูลที่เราต้องการแก้ไขนั้นจะส่งมาแบบ GET เพื่อให้ระบบรู้ว่าเราต้องการแก้ไขข้อมูลทีบรรทัดที่เท่าไหร่โดยการส่งค่า ID มานั้นจะมีรูปแบบการส่งแบบตัวอย่างด้านล่างนี้
<a href='ชื่อไฟล์ที่จะให้แสดงการแก้ไข?data_id=<?php echo $result['id'];?>'>EDIT</a>
หน้าที่จะรับค่าก็ต้องประกาศรับค่าตัวแปร data_id ด้วยจึงจะสามารถนำค่านั้นไปใช้งานต่อได้ ตัวอย่างด้านล่าง
ไฟล์ update.php
$data_idnew = $_GET[data_id]; // การประกาศรับค่า GET จากหน้าแรก

การดึงข้อมูลจาก Database ออกมา Update

การดึงข้อมูลจาก Database ออกมา Updateนั้นจะมีไฟล์หลักๆอยู่ 3 ไฟล์ด้วยกันคือ ไฟล์แสดงรายการทั้งหมด ไฟล์แสดงข้อมูลที่ต้องการแก้ไข และสุดท้ายคือไฟล์ที่ทำการแก้ไขการเปลี่ยนแปลงนั่นเอง

Code
ไฟล์ config.php
<?php
$conn = mysql_connect( "localhost", "ชื่อผู้ใช้", "รหัสผ่าน" );
$dbname = "ชื่อฐานข้อมูล";
mysql_query("SET NAMES UTF8");
if ( ! $conn )
die( "Error :MySQL " );
mysql_select_db( "ชื่อฐานข้อมูล", $conn )
or die ( "can't connect to database" );
?>
ตัวหนังสือสีแดงหมายถึง  ต้องเปลี่ยนให้ตรงกับฐานข้อมูลที่เราใช้

1.register.php
<br/><br/><br/><br/><form name='regis' method='POST' action='insertdata.php'>
<table width='500' align='center' border='1'>
<tr>
<td>Name :</td>
<td><input type='text' name='Name'></td>
</tr>
<tr>
<td>Lastname :</td>
<td><input type='text' name='lastname'></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name='submit' value='Submit'></td>
</tr>
</table>
</form>
<table width='500' align='center' border='1'>
<tr>
<td align='center'>No.</td>
<td align='center'>Name</td>
<td align='center'>LastName</td>
<td align='center'>Edit</td>
</tr>
<?php
include('config/config.php');
$strsql = "SELECT * FROM user ORDER BY id DESC";
$result = mysql_query($strsql);
while($rs = mysql_fetch_array($result))
{
?>
<tr>
<td><?php echo $rs['id'];?></td>
<td><?php echo $rs['name'];?></td>
<td><?php echo $rs['lastname'];?></td>
<td align='center'><a href='update1.php?data_id=<?php echo $rs['id'];?>'><input type='button' name='edit' value='Edit'></a></td>
</tr>
<?php } ?>
</table>

2. update1.php
<?php
include('config/config.php');
$data_idnew = $_GET['data_id'];

$strsql = "SELECT * FROM user WHERE id='$data_idnew'";
$result = mysql_query($strsql);
while($rs = mysql_fetch_array($result))
{
?>
<form name='update' method='POST' action='update2.php?data_id=<?php echo $rs['id'];?>'>
<table width='500' align='center' border='1'>
<tr>
<td>Name :</td>
<td><input type='text' name='Name' value='<?php echo $rs['name'];?>'></td>
</tr>
<tr>
<td>Lastname :</td>
<td><input type='text' name='lastname' value='<?php echo $rs['lastname'];?>'></td>
</tr>
<tr>
<td></td>
<td><a href='update2.php?data_id=<?php echo $rs['id'];?>'><input type='submit' name='submit' value='Submit'></a></td>
</tr>
</table>
</form>
<?php } ?>

3. update2.php
<?php
include('config/config.php');
$data_idnew = $_GET['data_id'];
$Namenew = $_POST['Name'];
$lastnamenew = $_POST['lastname'];
$strsql = "UPDATE user SET name='$Namenew',lastname='$lastnamenew' WHERE id='$data_idnew'";
$result = mysql_query($strsql);
if($strsql){
exit("<script> window.location='register.php';</script>");
}
?>