A-AA+then

ช่วยดู code listmenu ให้หน่อยนะคับว่าผิดตรงไหน

1,097
ผมมี้ 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 ว่าผิดตรงไหนเมื่อกลับมาแก้ไขจึงไม่เก็บค่า

................รบกวนพี่ ๆๆ หน่อยนะคับ.......................

1 ความคิดเห็น

 if($rowc['t_code']==$row['t_code']){

$row['t_code'] มาจากไหนครับ ผมไม่เห็นที่มาที่ไป.... ทำให้มันไม่สามารถตรวจสอบค่าได้

ถ้าโค้ดทั้ง 2 ส่วนอยู่ในหน้าเดียวกัน ก็จำเป็นต้องเก็บค่าดังกล่าวจากส่วนที่ 1 ใส่ แอเรย์อื่นไว้ก่อน แล้วค่อยนำแอเรย์นั้นมาใช้ในส่วนที่ 2

<?php
// ส่วนที่ 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
}
?>

คร่าวๆ ก็ประมาณนี้ ลองทำความเข้าใจ และ ประยุกค์ ดูครับ
1
^