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



................รบกวนพี่ ๆๆ หน่อยนะคับ.......................
กรกฎ วิริยะ 04 พ.ย. 2555 11:29
 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
}
?>


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