ช่วยดู code listmenu ให้หน่อยนะคับว่าผิดตรงไหน
ผมมี้ table 2 table ต้องการดึงข้อมูลจาก table 1 บางส่วนมาเก็บที่ table2 ตอนนี้ดึงมาเก็บได้แล้วแต่พอกลับไปยังหน้าแก้ไข listmenu ที่เลือกไว้ตอนแรกคืนค่ากลับที่เดิมทั้งหมด ช่วยดูให้หน่อยนะคับ
code อันแรกเป็น code ที่เขียนดึงฐานข้อมุลจาก table 1 มาโชว์ยังหน้าฟอร์ม
<select name="t_code">
<?php
include("config.inc.php");
$sql ="select * from tbl_type";
$query =mysql_query($sql) or die ("error=$sql");
$num =mysql_num_rows($query);
for($i=1;$i<=$num;$i++)
{
$row =mysql_fetch_array($query);
?>
<option value="<?PHP echo $row['t_code']?>"><?PHP echo $row['t_name']?></option>
<?PHP
}
?>
</select>
code ที่ 2 เป็นโค๊ดที่เขียนในการแก้ไขการเปลี่ยนแปลงของ listmenu
<select name="t_code">
<?php
include("config.inc.php");
$sqlc ="select * from tbl_type";
$queryc =mysql_query($sqlc) or die ("error=$sqlc");
$numc =mysql_num_rows($queryc);
for($i=1;$i<=$numc;$i++)
{
$rowc =mysql_fetch_array($queryc);
?>
<option value="<?PHP echo $rowc['t_code']?>"
<?PHP if($rowc['t_code']==$row['t_code']){echo 'selected="selected"';}?>> <?PHP echo $rowc['t_name']?></option>
<?PHP
}
?>
</select>
ซึ่ง code ที่ 1 ไม่มีปัญหา แต่อยากให้ดู code ที่ 2 ว่าผิดตรงไหนเมื่อกลับมาแก้ไขจึงไม่เก็บค่า
................รบกวนพี่ ๆๆ หน่อยนะคับ.......................
code อันแรกเป็น code ที่เขียนดึงฐานข้อมุลจาก table 1 มาโชว์ยังหน้าฟอร์ม
<select name="t_code">
<?php
include("config.inc.php");
$sql ="select * from tbl_type";
$query =mysql_query($sql) or die ("error=$sql");
$num =mysql_num_rows($query);
for($i=1;$i<=$num;$i++)
{
$row =mysql_fetch_array($query);
?>
<option value="<?PHP echo $row['t_code']?>"><?PHP echo $row['t_name']?></option>
<?PHP
}
?>
</select>
code ที่ 2 เป็นโค๊ดที่เขียนในการแก้ไขการเปลี่ยนแปลงของ listmenu
<select name="t_code">
<?php
include("config.inc.php");
$sqlc ="select * from tbl_type";
$queryc =mysql_query($sqlc) or die ("error=$sqlc");
$numc =mysql_num_rows($queryc);
for($i=1;$i<=$numc;$i++)
{
$rowc =mysql_fetch_array($queryc);
?>
<option value="<?PHP echo $rowc['t_code']?>"
<?PHP if($rowc['t_code']==$row['t_code']){echo 'selected="selected"';}?>> <?PHP echo $rowc['t_name']?></option>
<?PHP
}
?>
</select>
ซึ่ง code ที่ 1 ไม่มีปัญหา แต่อยากให้ดู code ที่ 2 ว่าผิดตรงไหนเมื่อกลับมาแก้ไขจึงไม่เก็บค่า
................รบกวนพี่ ๆๆ หน่อยนะคับ.......................
$row['t_code'] มาจากไหนครับ ผมไม่เห็นที่มาที่ไป.... ทำให้มันไม่สามารถตรวจสอบค่าได้
ถ้าโค้ดทั้ง 2 ส่วนอยู่ในหน้าเดียวกัน ก็จำเป็นต้องเก็บค่าดังกล่าวจากส่วนที่ 1 ใส่ แอเรย์อื่นไว้ก่อน แล้วค่อยนำแอเรย์นั้นมาใช้ในส่วนที่ 2
// ส่วนที่ 1
for($i=1;$i<=$num;$i++) {
$row =mysql_fetch_array($query);
// เก็บค่าแถวไว้ที่ตัวแปรอื่น โดยใช้ t_code เป็น key ซึ่งเราจะใช้ key นี้ในการตรวจสอบว่าเป็นค่าเดีนยวกับส่วนที่ 2 (อาจเลือกใช้ค่าอื่นได้ตามเงื่อนไขที่ต้องการ)
$save[$row['t_code']] = $row;
// do some thing
}
...........................
// ส่วนที่ 2
for($i=1;$i<=$num;$i++) {
$rowc =mysql_fetch_array($queryc);
// ตรวจสอบว่ามีรายการที่ t_code ใน อันแรกหรือไม่
$sel = isset($save[$rowc['t_code']]) ? ' selected=selected' : '';
// do some thing
}
?>
คร่าวๆ ก็ประมาณนี้ ลองทำความเข้าใจ และ ประยุกค์ ดูครับ