|
|
|
ผมมีปัญหาในการ update sql ครับ แทบจะก็อปวางจากตัวเดิมแต่ยังขึ้น error วอนผู้รู้ช่วยทีครับ |
|
|
|
|
|
|
|
สวัสดีครับ ผม update ข้อมูลในตารางไม่ได้ ขึ้น error ว่า
Notice: Undefined index: location_image_info in C:\xampp\htdocs\web2\editlocationmemberinfosaveimage.php on line 43
ในขณะที่อีกไฟล์นึงผมอัพเดทได้ปกติ แทบจะก็อปวางแล้วแก้แค่บางส่วนด้วยซ้ำ แต่ก็ยัง error ไม่รู้ว่าเป็นเพราะอะไรจริง ๆ ครับ
วอนผู้รู้ช่วยผมที
โค้ดที่ 1 อัพเดทได้ปกติ
code 1 บางส่วน
$id = $_GET['id'];
$loc_name = $_POST['name'];
$loc_type = $_POST['type'];
$loc_info = $_POST['info'];
$loc_add = $_POST['address'];
$loc_la = $_POST['latitude'];
$loc_long = $_POST['longitude'];
$loc_fee = $_POST['fee'];
$loc_rou = $_POST['route'];
$loc_land = $_POST['landmark'];
$update = "UPDATE tbllocation SET location_name = '$loc_name', location_type = '$loc_type',location_info = '$loc_info', location_address = '$loc_add'
,location_latitude = '$loc_la', location_longitude = '$loc_long', location_fee = '$loc_fee', location_route = '$loc_rou'
,location_landmark = '$loc_land' WHERE location_id = '$id' ";
$update_query = mysqli_query($con,$update);
if ($update_query){
echo "<script type='text/javascript'>";
//echo "alert('แก้ไขบทความสำเร็จ');";
echo "window.location = 'locationmemberinfo.php'";
echo "</script>";
}
โค้ดที่ 2 ตัวโค้ดที่เกิด error
code 2 บางส่วน
$loc_id = $_GET['loc_img_id'];
$loc_name = $_POST['location_image_info'];
$update = "UPDATE tbllocation_image SET location_image_info = '$loc_name' WHERE location_image_id = '$loc_id' ";
$update_query = mysqli_query($con,$update);
if ($update_query){
echo "<script type='text/javascript'>";
//echo "window.location = href='javascript:history.back(1);' ";
echo "</script>";
}
ภาพที่ 3 ข้อความ error
Notice: Undefined index: location_image_info in C:\xampp\htdocs\web2\editlocationmemberinfosaveimage.php on line 43
**ในที่นี้คือ บรรทัดที่ 2
Tag : PHP, MySQL, HTML, CSS, HTML5
|
ประวัติการแก้ไข 2018-06-19 05:14:18 2018-06-19 05:16:50 2018-06-19 14:03:48 2018-06-19 14:10:24 2018-06-19 14:10:39 2018-06-19 14:11:39
|
|
|
|
|
Date :
2018-06-19 05:12:50 |
By :
pangponpaper |
View :
757 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาเป็นแบบ CODE มาดีกว่าครับ
ถ้าสแนปเผื่อมีคนเขาเอา CODE ไปทดสอบ
Code (PHP)
<?php
echo 'tag PHP';
?>
|
ประวัติการแก้ไข 2018-06-19 08:44:44
|
|
|
|
Date :
2018-06-19 08:44:10 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปกติเอารูปภาพมานี้ผมจะไม่ตอบ อันนี้เห็นว่าไม่ต้องเอาโค๊ดมาใช้
print_r($_POST); เช็ค request ก่อนว่ามาครบไหม
ตัวส่งมันส่งมาไม่ครบไม่มีตัวแปรชื่อ ที่error แจ้งมา
|
|
|
|
|
Date :
2018-06-19 09:28:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กราบขออภัยครับที่แคปภาพมาลงแทนโค้ด ผมทำการแก้ไขแล้ว
// ตอบคุณ Chaidhanan
print_r($loc_name);
อย่างนี้ถูกต้องไหมครับ พอดีมือใหม่มาก ๆ ผมใส่ไว้ข้างล่างตัว $loc_name = $_POST['location_image_info']; ในโค้ดที่ 2 อย่างนี้
$loc_name = $_POST['location_image_info'];
print_r($loc_name);
ไม่แน่ใจถูกต้องหรือเปล่า ส่วน error ยังขึ้นตัวเดิมครับ
|
|
|
|
|
Date :
2018-06-19 14:08:59 |
By :
pangponpaper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
undefined index คือไม่มีสารบัญระบุอยู่
กรณี array ก็คือไม่มี key นั่นแหละ
$_POST['location_image_info']; เรียกใช้โต้งๆแบบนี้ถ้าไม่มีฟอร์มส่งค่านี้มามันก็เป็นอย่างที่เห็น
วิธีแก้ undefined index สำหรับ array คือใช้ isset, array_key_exists
isset จะเป็น false ถ้าค่าเป็น null ดังนั้นถ้าจะเช็คค่าที่เป็น null ด้วยให้ใช้อย่างหลัง แต่โดยทั่วไปก็ใช้ isset
ตัวอย่าง
Code (PHP)
$loc_name = (isset($_POST['location_image_info']) ? $_POST['location_image_info'] : '');
คือเช็คก่อนว่ามีกำหนดมายัง? ถ้าไม่มีก็เป็น empty string ไป ''
|
|
|
|
|
Date :
2018-06-19 14:13:14 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณท่าน mr.v สำหรับคำตอบนะครับ
ผมลองทดสอบดูแล้ว กลายเป็นว่า ค่าที่ update เข้าไปเป็นค่าว่างแทน อาจเป็นเพราะว่าไม่ได้อยู่ใต้ฟอร์มที่ต้องส่งค่าไปหรือเปล่า
ผมต้องการอัพเดทข้อมูลที่ตรงกับ location_image_id ที่ eccho ออกมาเลย
ผมอาจจะไม่เข้าใจอะไร หรือสื่ออะไรผิด ขออนุญาตอธิบายเพิ่มเติม
ผมต้องการให้อัพเดทข้อมูลตามที่กรอกลงใน textarea ดังนี้
(เผื่อไม่เห็นภาพ ขอก็อปมาทั้ง while)
<?php
while($showimg = mysqli_fetch_array($locationmemberinfo_showimg)){
# code...
?>
<div class="col-lg-6">
<label for="usr">ภาพที่ <?php echo $i_no ?>:</label>
<input type='file' name="location_image_file" onchange="document.getElementById('loc_img<?php echo $i_no ?>').src = window.URL.createObjectURL(this.files[0])">
<img id="loc_img<?php echo $i_no ?>" src="<?php echo $showimg["location_image_file"]; ?>" height="200">
<label for="usr">คำอธิบายภาพที่ <?php echo $i_no ?>:</label>
<textarea type="text" class="form-control" rows="5" name="location_image_info" id="location_image_info" ><?php echo $showimg["location_image_info"]; ?></textarea>
<td scope="row"><button type="button" class="btn btn-primary" onClick="window.location='editlocationmemberinfosaveimage.php?loc_img_id=<?php echo $showimg["location_image_id"]; ?>'">แก้ไข</button>
</div>
<?php
$i_no++;
}
?>
ถ้าหากว่าผมแก้โค้ด update เป็น อย่างนี้ถูกต้องไหมครับ ซึ่งมันก็ยัง error อยู่ดี
$update = "UPDATE tbllocation_image SET location_image_info = '".$_POST['location_image_info']."' WHERE location_image_id = '$loc_id' ";
|
ประวัติการแก้ไข 2018-06-19 14:36:37
|
|
|
|
Date :
2018-06-19 14:32:23 |
By :
pangponpaper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ทำได้แล้วครับ นำลูป while ไปไว้ภายใต้ form เพื่อทำการส่งค่าไปอีกที ตามที่คุณ mr.v บอกไว้
ความรู้ความสามารถผมยังน้อย ทำให้ไม่ค่อยเข้าใจเท่าไร ขอบคุณทุกท่านมากครับผม
|
|
|
|
|
Date :
2018-06-19 15:58:17 |
By :
pangponpaper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างคือ print_r($_POST); เพื่อที่จะได้รู้ว่ามีอะไรส่งมาบ้าง
$_POST['location_image_info'] มันไม่มี index "location_image_info" นี้
เอาโค๊ดทดสอบไปเรียกใช้หลังคำสั่งที่เออเร่อร์ ก็จะได้เออเร่อร์ แบบเดิมสิครับ
ถ้าใช้การตรวจสอบที่ถูกต้อง ก็จะพบจุดผิดผลาดได้เร็๋ว
|
|
|
|
|
Date :
2018-06-19 16:54:11 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขออณุญาตสอบถามเพิ่มเติมครับ
อัพเดท info ได้แล้ว แต่ตอนนี้ติดปัญหา update รูปภาพครับ error ดังนี้
Array ( [location_image_file] => 10.jpg [location_image_info] => 1 )
Notice: Undefined index: location_image_file in C:\xampp\htdocs\web2\editlocationmemberinfosaveimage.php on line 48 ถ้าตาม code ข้างล่างคือบรรทัดที่ 8
มีการส่งค่ามาครบทั้ง 2 input ทำไมไม่ได้เหรอครับ กำลังทำตามตัวอย่างนี้
https://www.thaicreate.com/community/php-upload-file-mysql-edit-form.html
Code (PHP)
<?php
print_r($_POST);
$update = "UPDATE tbllocation_image SET location_image_info = '".$_POST['location_image_info']."' WHERE location_image_id = '$loc_id' ";
$update_query = mysqli_query($con,$update);
if($_FILES["location_image_file"]["name"] != "")
{
//$target = "img/".basename($_FILES['location_image_file']['name']);
//$image = $_FILES['location_image_file']['name'];
if(move_uploaded_file($_FILES["location_image_file"]["tmp_name"],"img/".$_FILES["location_image_file"]["name"]))
{
$sql_update = "UPDATE tbllocation_image SET location_image_file = '".$_FILES['location_image_file']['name']."' WHERE location_image_id = '$loc_id'";
$query = mysqli_query($con,$sql_update);
}
}
if ($update_query){
echo "<script type='text/javascript'>";
//echo "window.location = href='javascript:history.back(1);' ";
echo "</script>";
}
?>
|
ประวัติการแก้ไข 2018-06-19 18:07:00
|
|
|
|
Date :
2018-06-19 18:06:19 |
By :
pangponpaper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะเหมือนกันนั่นแหล่ะครับ ย้าย <input type=file > ไปไว้ใน form หรือ ตรวจเช็คชื่อตัวแปร ว่าถูกต้องไหม
|
|
|
|
|
Date :
2018-06-19 18:56:01 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|