สอบถามดึงข้อมูลมาโชว์ textbox แล้วเก็บลงฐานข้อมูลครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามดึงข้อมูลมาโชว์ textbox แล้วเก็บลงฐานข้อมูลครับ

สอบถามดึงข้อมูลมาโชว์ textbox แล้วเก็บลงฐานข้อมูลครับ
ผมดึงข้อมูลมาโชว์ที่textbox ครับ
แล้วจะให้มันเก็บลงฐานข้อมูล
ผมสามารถเขียนคำสั่งบันทึก หน้าหลักหรือหน้าที่เขียนแยกแล้วเรียกไปเก็บอีกทีได้ไหมครับ
เช่น
ผมดึงข้อมูลจากฟิล name มาโชว์
value="<?= $result['name'];?>" แล้วผมต้องการจะเก็บค่า name จากการดึงข้อมูลมาโชว์จะได้ไหมครับ


Maxtri 21-10-2016 10:04:37

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
สอบถามอีกอย่างครับ 
ผมลองทดสอบการดึงข้อมูลแล้วมาโชว์ภาษา ???? ครับ
ผลปรากฏว่า
เมื่อผมดึงมาโชว์มาเรียงแถวกัน มันกลับโชว์ ????? ภาษาไทยเพี้ยนครับ แก้หมดแล้วครับอันนี้
แต่พอผมลองดึงแบบไม่เรียงข้อมูลกลับเป็นภาษาไทยปกติ ผมเลย งง ว่ามันเป็นเพราะอะไรครับ
ช่วยแนะนำทีครับผม


maxtri 21-10-2016 10:06
 ความคิดเห็นที่ 2
  ไม่เข้าใจที่ถามน่ะ ส่วนเรื่องภาษาที่เพี้ยน อันนี้คงแนะนำเพิ่มไม่ได้ ขึืนกับบริบทหรือแวดล้อมอื่นๆ
ที่ไม่สามารถเห็นหรืออธิบายได้


ninenik 21-10-2016
 ความคิดเห็นที่ 3
ขอโทดครับที่ถามแล้วทำให้ งง ครับ
ผมจะเรียงคำถามใหม่ครับ

ผมดึงข้อมูลจากฐานข้อมูลมาโชว์ได้ปกติครับ
แล้วผมต้องการที่จะบันทึกข้อมูลลงฐานข้อมูลครับ

กรอบสีแดงที่ผมดึงข้อมูลมาโชว์ครับ

ส่วนอันนี้เป็นโค๊ดที่ผมดึงข้อมูลมาโชว์แล้วผมต้องการจะบันทึกเก็บลงฐานข้อมูลครับ
พอผม insert แล้วข้อมูลไม่เข้าครับ มันเข้าแค่ค่าว่างครับ ทั้งๆที่ผมก็เซทตัวแปรถูกหมดแล้วครับ

ช่วยแนะนำทีครับผม


maxtri 21-10-2016 10:23
 ความคิดเห็นที่ 4
การ insert แล้วข้อมูลไม่เข้าใน database ต้องไล่การทำงานตามลำดับ
หน้ารับค่า แบบนี้เป็นแนวทาง
 

ตัวอย่างไฟล์ dbconnect.php

<?php  
$mysqli = new mysqli("localhost", "root","","test");  
/* check connection */  
if (mysqli_connect_errno()) {  
    printf("Connect failed: %s\n", mysqli_connect_error());  
    exit();  
}  
if(!$mysqli->set_charset("utf8")) {  
    printf("Error loading character set utf8: %s\n", $mysqli->error);  
    exit();  
}  
 

- ตรวจสอบว่ามีการเรียกใช้การเชื่อมต่อกับ database แล้วหรือไม่

 
<?php  
session_start();  
require_once("dbconnect.php");  
?>
 
 

- เข้าเงื่อนไข การรับค่าหรือไม่ เช่น ส่งค่ามา มีการการเช็คค่า และเข้าเงื่อนไขหรือไม่ 

 
 
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "check submit";
}
?>
 
 

- ดูว่าชนิดของตัวแปรที่ส่งมา กับเงื่อนไขเป็นตัวแปรประเภทเดียวกันหรือไม่

เช่น ส่งแบบ GET ต้องเช็คที่ตัวแปร $_GET['xxxx'] หรือ ส่งแบบ POST ต้องเช็คด้วยตัวแปร $_POST

 
<form name="form1" method="post" action="">
  <input type="text" name="data" id="data">
  <input type="submit" name="btn_submit" id="btn_submit" value="Submit">
</form>
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "check submit";
}
?>
 
หรือ
 
<form name="form1" method="get" action="">
  <input type="text" name="data" id="data">
  <input type="submit" name="btn_submit" id="btn_submit" value="Submit">
</form>
<?php
if(isset($_GET['btn_submit']) && $_GET['btn_submit']!=""){
	echo "check submit";
}
?>
 

- เช็คว่าค่าที่ส่งมา ส่งมาครบหรือไม่ รูปแบบตัวแปรหรือชนิดของตัวแปรถูกต้องหรือไม่

 
<?php
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	echo "<pre>";
	print_r($_POST); // ตัวแปร POST ส่งอะไรมาบ้าง ส่งมาครับไหม
	print_r($_GET); // ตัวแปร _GET ส่งอะไรมาบ้าง ส่งมาครับไหม	
	echo "</pre>";
}
?>

- หลัง submit ข้อมูลตรวจสอบคำสั่ง sql ว่าเป็นค่าที่ถูกต้องหรือไม่

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	echo $sql; // แสดงคำส่ัง sql ว่ารูปแบบถูกต้องหรือไม่
	exit; // หยุดทำงาน
	$mysqli->query($sql);
}
?>
 

- กรณีคำสั่ง sql มีรูปแบบไม่ถูกต้องหรือต้องการป้องกัน sql injection สามารถเพิ่มคำสั่งป้องกันเพิ่มเติมได้

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	
	// ป้องกัน sql injection อย่างง่าย สามารถไปสร้างเป็นฟังก์ชั่เพื่อรียกใช้งานได้
	$_POST['data'] = $mysqli->real_escape_string($_POST['data']); 
	
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	echo $sql; // แสดงคำส่ัง sql ว่ารูปแบบถูกต้องหรือไม่
	exit; // หยุดทำงาน
	$mysqli->query($sql);
}
?>
 

- เช็คว่าคำสั่ง sql นั้นทำการคิวรี่ สำเร็จหรือไม่

 
<?php
session_start();  
require_once("dbconnect.php");  
if(isset($_POST['btn_submit']) && $_POST['btn_submit']!=""){
	
	// ป้องกัน sql injection อย่างง่าย สามารถไปสร้างเป็นฟังก์ชั่เพื่อรียกใช้งานได้
	$_POST['data'] = $mysqli->real_escape_string($_POST['data']); 
	
	$sql="
	INSERT INTO tbl_demo SET
	data='".$_POST['data']."'
	";
	$result = $mysqli->query($sql);
	if($result){
		echo "query success";	
	}
}
?>

บางกรณีการส่งข้อมูลจำนวนมากๆ อาจจะถูกจำกัดด้วยตัวจัดการ php 
เช่น php_value post_max_size เราสามารถปรับแค่โดยการกำหนดใน php.ini ได้

 


ninenik 21-10-2016
 ความคิดเห็นที่ 5
ขอบคุณครับ
ผมจะลองนำไปใช้และทดสอบก้อนครับผม


maxtri 21-10-2016 11:53
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ