พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / นำ array ไปใช้
moolee
moolee
Tue 14 Mar 2006 09:56:11
เช่นการกรอกประวัติการศึกษา มีให้กรอก 3 อันดับ อันดับล่าสุด  อันดับถัดไป  อันดับเก่าสุด  ทำเป็น array มีวิธีประกาศและนำลงฐานข้อมูลยังไงค่ะ  ในฐานข้อมูลต้องประกาศตัวแปรเสร็จตามด้วย [] หรือเปล่าค่ะ  ไม่ทราบจริง ๆ ช่วยแนะแนวทางหน่อยเถอะคะ
Administrator
Tue 14 Mar 2006 13:15:32
การกรอกปนะวัติการศึกษาก็อาจจะตั้งชื่อให้ต่างๆกันก็ได้ครับ ง่ายๆอ่จจะเป็น a1, a2, a3, b1, b2, b3 ประมาณนี้ก็ได้ครับ ส่วนถ้าต้องการใช้ให้เป็น array นั้นก็สามารถทำได้โดย ตั้งชื่อเป็น
a[], b[], c[] โดย object ที่ได้ถ้ามีการเขียน เช่น
<input type="text" name="a[]">
<input type="text" name="a[]">
<input type="text" name="a[]">
เวลาทำการ submit จะได้ตัวแปรในชื่อ a[0], a[1], a[2] ครับ
จากนั้นก็นำข้อมูลจากตัวแปรต่างๆไปทำการบันทึกลงฐานข้อมูล
moolee
moolee
Tue 14 Mar 2006 16:22:15

ขอถามเพิ่มค่ะ  แล้วในฐานข้อมูลเก็บตัวแปรเป็น a1,a2,a3  ใช่ไหมค่ะ ถึงข้อมูลจะสามารถลงฐานข้อมูลได้  แล้วใช้คำสั่งไหนในการ insert ค่ะ

Administrator
Tue 14 Mar 2006 20:47:33
การใช้งาน database นั้นไม่จำเป็นต้องใช้ชื่อ Field เดียวกันกับตัวแปรครับ คำสั่งที่ใช้ในการเพิ่มข้อมูลคือ INSERT ในภาษา SQL ครับส่วนการ Interface กับฐานข้อมูลนั้นขึ้นอยู่กับว่าใช้งานกับฐานข้อมูลใดครับ
moolee
moolee
Thu 16 Mar 2006 09:55:43

ไม่ทราบว่าจะมีวิธีตรวจเชคได้ไง  ว่าข้อมูลที่เพิ่มแล้วเก็บรูปแบบ array  ไว้ยังไงในฐานข้อมูล  พูดถึงการออกแบบ DB นะค่ะ  เพราะที่ทำมาถ้าหากลง DB ข้อมูลก็จะเห็นเป็น 1 record  แต่ถ้าแบบ array ข้อมูลจะเก็บยังไงค่ะ

Administrator
Thu 16 Mar 2006 11:48:32
การเก็บข้อมูลถ้า Array นั้นมีขนาดคงที่คุณก็อาจจะแบ่งเป็น field ละข้อมูลก็ได้ครับ แต่ถ้าเป็นขนาดไม่คงที่ก็อาจจะเก็บใน field Text ก็ได้ครับ โดยอาจจะทำการ implode() Array เพื่อให้ได้เป็น string ด้วยตัวคั่นเป็นอักขระที่ไม่น่าจะเป็นตัวอักษร user ใช้ครับ เช่น |-X-| คั่นระหว่างแต่ละตัวแปรใน array เวลาเรียกใช้งานข้อมูลก็ทำการ explode ออกมาเป็น array เหมือนเดิมได้ครับ
moolee
moolee
Sat 25 Mar 2006 09:54:08

ถ้าหากแบ่งเป็นแต่ละ field  แบบคงที่แล้วสมมุติมีทั้งหมด 6 ฟิลด์  แต่คนหนึ่งคนสามารถกรอกได้ 3 ชุดนะค่ะ  ชุดละ 6 ฟิลด์  แล้วข้อมูลจะอยู่ใน DB ยังไง  ถ้าทำแบบตั้งชื่อไม่ซ้ำกันเลย ทั้งหมด  18 ฟิลด์เลยมันก็เยอะมากเลย มีวิธีอื่นอีกไหมค่ะ

<input name="ployee_comname" type="text" class="input_res" id="ployee_comname" size="50" maxlength="50">

<textarea name="ployee_add" cols="50" rows="2" id="ployee_add"></textarea>

<input name="ployee_position" type="text" class="input_res" id="ployee_position" size="50" maxlength="50">

<input name="ployee_salary" type="text" class="input_res" id="ployee_salary" maxlength="6">

<textarea name="ployee_jobdetail" cols="50" rows="3" id="ployee_jobdetail"></textarea>

Administrator
Sat 25 Mar 2006 11:53:26
ก่อนอื่นต้องหาจุดร่วมของแต่ละ Field ครับว่าสามารถใช้จุดร่วมนั้นได้ไหม ถ้าเป็น Field ชนิดเดียวกันมีความยาวเท่ากันมีความหมายใกล้เคียงกันก็สามารถทำได้ครับ โดยต้องเพิ่ม Field เพื่อแยกทั้ง 3 Records ออกจากกันไว้ด้วยครับ แต่ถ้าหาจุดร่วมกันไม่ได้เลย ก็ต้องทำเป็น 18 fields ครับ

เช่น ถ้า เป็นประวัติการศึกษาแล้วล่ะก็ อาจจะมีข้อมูลเป็น
ชั้นประถม
-ปีเข้ารับการศึกษา
-ปีจบการศึกษา
-โรงเรียน

ชั้นมัธยมต้น
-ปีเข้ารับการศึกษา
-ปีจบการศึกษา
-โรงเรียน

ชั้นมัธยมปลาย/ปวช
-ปีเข้าการศึกษา
-ปีจบการศึกษา
-โรงเรียน
-สาขาที่เรียน

ชั้นอนุปริญญา
-ปีเข้ารับการศึกษา
-ปีจบการศึกษา
-โรงเรียน
-สาขาที่เรียน

ชั้นปริญญาตรี
-ปีเข้าการศึกษา
-ปีจบการศึกษา
-โรงเรียน
-สาขาที่เรียน

ชั้นปริญญาโท
-ปีเข้ารับการศึกษา
-ปีการศึกษา
-โรงเรียน
-สาขาที่เรียน

ชั้นปริญญาเอก
-ปีเข้ารับการศึกษา
-ปีการศึกษา
-โรงเรียน
-สาขาที่เรียน

จะเห็นว่ามีจุดร่วมกันอยู่ครับ
-ปีเข้ารับการศึกษา
-ปีจบการศึกษา
-โรงเรียน
-สาขาที่เรียน //แม้ว่าในบางระดับการศึกษาจะไม่มีก็ตาม ก็ต้องมี Field นี้ครับ

เมื่อผ่านการ Optimize แล้วจะได้เป็น

#educations
-StartYearId
-EndYearId
-Academic
-Department

#years
-YearId //i.e. 1, 2, 3
-YearVal // i.e. 2004, 2005, 2006

ถ้ามีการซ้ำกันของข้อมูลมากๆผมอาจจะเขียนเป็น

#educations
-StartYearId int(6)
-EndYearId int(6)
-AcademicId int(6)
-DepartmentId int(3)

#years
-YearId int(6)
-YearVal int(6)

#academics
-AcademicId int(6)
-AcademicName VarChar(100)

#departments
-DepartmentId int(6)
-DepartmentName VarChar(100)

ประมาณนี้ครับ
moolee
moolee
Mon 27 Mar 2006 17:53:02

ข้อมูลที่กรอกลง DB โดยวิธีการเก็บในลักษณะ ด้วยตัวคั่นเป็นอักขระ เวลาดูใน DB ผลที่กรอกเข้าไปทำไมเป็น ตัวคั่นอักขระละค่ะ เช่นคั่นด้วย [##] 

moolee
moolee
Mon 27 Mar 2006 17:56:49

วิธี insert ข้อมูลลง DB แบบมีหน้าฟอร์มอันเดียว แต่สามารถกรอกลงได้หลายตารางมีวิธีทำยังไงค่ะ  โดยฟิลด์อยู่หน้าฟอร์มเดียวกัน  แต่อยู่คนละตาราง

Administrator
Mon 27 Mar 2006 18:19:39
ถ้าคุณทำการคั่นด้วย ## ใส่ลงใน field เดียว ก็จะเห็นเป็น string ชุดเดียวกันหมดครับ

ส่วนการ insert ลงในหลายตารางนั้นในต้องใช้คำสั่ง mysql_query() ตามจำนวนที่ต้องการ insert ครับเช่น

#table_a
-field_keys
-field_value

#table_b
-field_keys
--field_value

เมื่อรับค่ามาก็จะต้องทำการ insert 2 ครั้งครับ เช่น

<?
....
mysql_query("INSERT INTO table_a(field_keys, field_value) VALUES('".$data_a["keys"]."', '".$data_a["value"]."')");
mysql_query("INSERT INTO table_b(field_keys, field_value) VALUES('".$data_b["keys"]."', '".$data_b["value"]."')");
....
?>

ประมาณนี้ครับ
moolee
moolee
Tue 28 Mar 2006 12:10:13
$data_a  กับ  $data_b คือต้องไปกำหนดเป็นตัวแปรตรงไหนค่ะ  ที่เข้าใจคิดว่าเป็นการประกาศถึง ตัว table รึเปล่า
Administrator
Tue 28 Mar 2006 14:08:24
$data_a, $data_b เป็นตัวแปรที่สมมุติขึ้นครับ คุณอาจจะใช้ตัวแปรอื่นๆก็ได้ครับ จากโค๊ด PHP นั้นเป็นการนำค่าในตัวแปร $data_a และ $data_b เพื่อ insert ลงใน ตารางครับ
moolee
moolee
Tue 28 Mar 2006 16:15:44
เก็บข้อมูลลง  ในลักษณะการเชื่อมต่อด้วยเครื่องหมายแบบนี้ $emp_institute = $emp_institute1."##" .$emp_institute2."##".$emp_institute3; มันไม่ลง DB ค่ะ กรอกจาก textfield เป็นเพราะอะไรค่ะ  เพราะนำออกมาในลักษณะ array  ตอนนำมาแสดงผลนะค่ะ
Administrator
Tue 28 Mar 2006 21:33:46
$emp_institute = $emp_institute1."##" .$emp_institute2."##".$emp_institute3;

ลองทำการ echo $emp_institute; ดูครับว่ามีค่าหรือไม่ครับ ถ้ามีค่าแสดงผลถูกต้อง การ insert ลง db นั้นก็นำตัวแปรนี้ไปใช้งานได้เลยครับ เช่น

mysql_query("INSERT INTO table_name(field_name) VALUES('".$emp_institute."')");
moolee
moolee
Wed 29 Mar 2006 11:36:57

มีวิธีนำข้อมูลลง DB แบบนี้ไหมค่ะ  ระยะเวลา :: ตั้งแต่มีให้เลือกเดือนและพ.ศ.  จนถึง มีให้เลือกเดือนและพ.ศ.เช่นเดียวกันแต่ให้เก็บด้วยกัน  จำนวน 3 ฟิลด์แต่ให้เก็บในฟิลด์เดียวกันโดยการคั่นด้วยตัวเครื่องหมายใดก็ได้ให้บ่งบอกว่าอันที่ 1  อันที่ 2  อันที่ 3 แล้วก็ใช้วิธี explode ออกมาแสดงในรูปแบบวันที่ตามปกติ  ตามนี้น่ะค่ะ

Administrator
Wed 29 Mar 2006 16:42:12
<?
$dt[0] = "03/2006";
$dt[1] = "04/2006";
$dt[2] = "05/2006";

$dt = implode("##", $dt);

....
mysql_query("INSERT INTO(data_field) VALUES('".$dt."'");
....
?>

เวลาใช้งานก็ ทำการ select ออกมาแล้วก็ทำการ explode() ครับ

<?
$dt = explode("##", $row["data_field"]); // $row เป็นตัวแปรที่ได้จาก mysql_fetch_array()
?>
moolee
moolee
Wed 29 Mar 2006 18:01:00

ลักษณะแบบนี้ค่ะ  แล้วต้องการให้คลิกเลือกแล้วลง DB ในลักษณะมีฟิลด์แบบนี้  จำนวน 3 ฟิลด์เก็บในตัวแปรเดียวกันด้วยตัวคั่น ##

ไม่เข้าใจตัวแปร

$dt[0] = "03/2006";
$dt[1] = "04/2006";
$dt[2] = "05/2006";  นี้ต้องประกาศเป็นแบบนี้ก่อนจะ insert เหลอค่ะ

ลักษณะที่ต้องการเป็นแบบนี้น่ะคะ

ตั้งแต่
          <select name="work_from_month2" id="work_from_month2">
            <option value="<?  echo date(m);?>" selected>
            <?  echo $mon;?>
            </option>
            <option value="01">มกราคม</option>
            <option value="02">กุมภาพันธ์</option>
            <option value="03">มีนาคม</option>
            <option value="04">เมษายน</option>
            <option value="05">พฤษภาคม</option>
            <option value="06">มิถุนายน</option>
            <option value="07">กรกฎาคม</option>
            <option value="08">สิงหาคม</option>
            <option value="09">กันยายน</option>
            <option value="10">ตุลาคม</option>
            <option value="11">พฤศจิกายน</option>
            <option value="12">ธันวาคม</option>
        </select>
          <select name="work_from_year2" size=1 id="work_from_year2">
            <option
                                value=2549 selected>2549</option>
            <option
                                value=2548>2548</option>
            <option
                                value=2547>2547</option>
            <option
                                value=2546>2546</option>
            <option
                                value=2545>2545</option>
            <option
                                value=2544>2544</option>
            <option
                                value=2543>2543</option>
            <option
                                value=2542>2542</option>
            <option
                                value=2541>2541</option>
            <option
                                value=2540>2540</option>
            <option
                                value=2539>2539</option>
            <option
                                value=2538>2538</option>
            <option
                                value=2537>2537</option>
            <option
                                value=2536>2536</option>
            <option
                                value=2535>2535</option>
            <option
                                value=2534>2534</option>
            <option
                                value=2533>2533</option>
            <option
                                value=2532>2532</option>
            <option
                                value=2531>2531</option>
            <option
                                value=2530>2530</option>
            <option
                                value=2529>2529</option>
            <option
                                value=2528>2528</option>
            <option
                                value=2527>2527</option>
            <option
                                value=2526>2526</option>
            <option
                                value=2525>2525</option>
            <option
                                value=2524>2524</option>
            <option
                                value=2523>2523</option>
            <option
                                value=2522>2522</option>
            <option
                                value=2521>2521</option>
            <option
                                value=2520>2520</option>
            <option
                                value=2519>2519</option>
            <option
                                value=2518>2518</option>
            <option
                                value=2517>2517</option>
            <option
                                value=2516>2516</option>
            <option
                                value=2515>2515</option>
            <option
                                value=2514>2514</option>
            <option
                                value=2513>2513</option>
            <option
                                value=2512>2512</option>
            <option
                                value=2511>2511</option>
            <option
                                value=2510>2510</option>
            <option
                                value=2509>2509</option>
            <option
                                value=2508>2508</option>
            <option
                                value=2507>2507</option>
            <option
                                value=2506>2506</option>
            <option
                                value=2505>2505</option>
            <option
                                value=2504>2504</option>
            <option
                                value=2503>2503</option>
            <option
                                value=2502>2502</option>
            <option
                                value=2501>2501</option>
            <option
                                value=2500>2500</option>
            <option
                                value=2499>2499</option>
            <option
                                value=2498>2498</option>
            <option
                                value=2497>2497</option>
            <option
                                value=2496>2496</option>
            <option
                                value=2495>2495</option>
            <option
                                value=2494>2494</option>
            <option
                                value=2493>2493</option>
            <option
                                value=2492>2492</option>
            <option
                                value=2491>2491</option>
            <option
                                value=2490>2490</option>
            <option
                                value=2489>2489</option>
            <option
                                value=2488>2488</option>
            <option
                                value=2487>2487</option>
            <option
                                value=2486>2486</option>
            <option
                                value=2485>2485</option>
            <option
                                value=2484>2484</option>
            <option
                                value=2483>2483</option>
            <option
                                value=2482>2482</option>
            <option
                                value=2481>2481</option>
            <option
                                value=2480>2480</option>
            <option
                                value=2479>2479</option>
            <option
                                value=2478>2478</option>
            <option
                                value=2477>2477</option>
            <option
                                value=2476>2476</option>
            <option
                                value=2475>2475</option>
            <option
                                value=2474>2474</option>
            <option
                                value=2473>2473</option>
            <option
                                value=2472>2472</option>
            <option
                                value=2471>2471</option>
            <option
                                value=2470>2470</option>
            <option
                                value=2469>2469</option>
            <option
                                value=2468>2468</option>
            <option
                                value=2467>2467</option>
            <option
                                value=2466>2466</option>
            <option
                                value=2465>2465</option>
            <option
                                value=2464>2464</option>
            <option
                                value=2463>2463</option>
            <option
                                value=2462>2462</option>
            <option
                                value=2461>2461</option>
            <option
                                value=2460>2460</option>
            <option
                                value=2459>2459</option>
            <option
                                value=2458>2458</option>
            <option
                                value=2457>2457</option>
            <option
                                value=2456>2456</option>
            <option
                                value=2455>2455</option>
            <option
                                value=2454>2454</option>
            <option
                                value=2453>2453</option>
            <option
                                value=2452>2452</option>
            <option
                                value=2451>2451</option>
            <option
                                value=2450>2450</option>
            <option
                                value=2449>2449</option>
        </select>
      จนถึง
      <select name="work_to_month2" id="work_to_month2">
        <option value="<?  echo date(m);?>" selected>
        <?  echo $mon;?>
        </option>
        <option value="01">มกราคม</option>
        <option value="02">กุมภาพันธ์</option>
        <option value="03">มีนาคม</option>
        <option value="04">เมษายน</option>
        <option value="05">พฤษภาคม</option>
        <option value="06">มิถุนายน</option>
        <option value="07">กรกฎาคม</option>
        <option value="08">สิงหาคม</option>
        <option value="09">กันยายน</option>
        <option value="10">ตุลาคม</option>
        <option value="11">พฤศจิกายน</option>
        <option value="12">ธันวาคม</option>
      </select>
      <SELECT name=work_to_year2 size=1 id="work_to_year2">
        <OPTION
                                value=2549 selected>2549</OPTION>
        <OPTION
                                value=2548>2548</OPTION>
        <OPTION
                                value=2547>2547</OPTION>
        <OPTION
                                value=2546>2546</OPTION>
        <OPTION
                                value=2545>2545</OPTION>
        <OPTION
                                value=2544>2544</OPTION>
        <OPTION
                                value=2543>2543</OPTION>
        <OPTION
                                value=2542>2542</OPTION>
        <OPTION
                                value=2541>2541</OPTION>
        <OPTION
                                value=2540>2540</OPTION>
        <OPTION
                                value=2539>2539</OPTION>
        <OPTION
                                value=2538>2538</OPTION>
        <OPTION
                                value=2537>2537</OPTION>
        <OPTION
                                value=2536>2536</OPTION>
        <OPTION
                                value=2535>2535</OPTION>
        <OPTION
                                value=2534>2534</OPTION>
        <OPTION
                                value=2533>2533</OPTION>
        <OPTION
                                value=2532>2532</OPTION>
        <OPTION
                                value=2531>2531</OPTION>
        <OPTION
                                value=2530>2530</OPTION>
        <OPTION
                                value=2529>2529</OPTION>
        <OPTION
                                value=2528>2528</OPTION>
        <OPTION
                                value=2527>2527</OPTION>
        <OPTION
                                value=2526>2526</OPTION>
        <OPTION
                                value=2525>2525</OPTION>
        <OPTION
                                value=2524>2524</OPTION>
        <OPTION
                                value=2523>2523</OPTION>
        <OPTION
                                value=2522>2522</OPTION>
        <OPTION
                                value=2521>2521</OPTION>
        <OPTION
                                value=2520>2520</OPTION>
        <OPTION
                                value=2519>2519</OPTION>
        <OPTION
                                value=2518>2518</OPTION>
        <OPTION
                                value=2517>2517</OPTION>
        <OPTION
                                value=2516>2516</OPTION>
        <OPTION
                                value=2515>2515</OPTION>
        <OPTION
                                value=2514>2514</OPTION>
        <OPTION
                                value=2513>2513</OPTION>
        <OPTION
                                value=2512>2512</OPTION>
        <OPTION
                                value=2511>2511</OPTION>
        <OPTION
                                value=2510>2510</OPTION>
        <OPTION
                                value=2509>2509</OPTION>
        <OPTION
                                value=2508>2508</OPTION>
        <OPTION
                                value=2507>2507</OPTION>
        <OPTION
                                value=2506>2506</OPTION>
        <OPTION
                                value=2505>2505</OPTION>
        <OPTION
                                value=2504>2504</OPTION>
        <OPTION
                                value=2503>2503</OPTION>
        <OPTION
                                value=2502>2502</OPTION>
        <OPTION
                                value=2501>2501</OPTION>
        <OPTION
                                value=2500>2500</OPTION>
        <OPTION
                                value=2499>2499</OPTION>
        <OPTION
                                value=2498>2498</OPTION>
        <OPTION
                                value=2497>2497</OPTION>
        <OPTION
                                value=2496>2496</OPTION>
        <OPTION
                                value=2495>2495</OPTION>
        <OPTION
                                value=2494>2494</OPTION>
        <OPTION
                                value=2493>2493</OPTION>
        <OPTION
                                value=2492>2492</OPTION>
        <OPTION
                                value=2491>2491</OPTION>
        <OPTION
                                value=2490>2490</OPTION>
        <OPTION
                                value=2489>2489</OPTION>
        <OPTION
                                value=2488>2488</OPTION>
        <OPTION
                                value=2487>2487</OPTION>
        <OPTION
                                value=2486>2486</OPTION>
        <OPTION
                                value=2485>2485</OPTION>
        <OPTION
                                value=2484>2484</OPTION>
        <OPTION
                                value=2483>2483</OPTION>
        <OPTION
                                value=2482>2482</OPTION>
        <OPTION
                                value=2481>2481</OPTION>
        <OPTION
                                value=2480>2480</OPTION>
        <OPTION
                                value=2479>2479</OPTION>
        <OPTION
                                value=2478>2478</OPTION>
        <OPTION
                                value=2477>2477</OPTION>
        <OPTION
                                value=2476>2476</OPTION>
        <OPTION
                                value=2475>2475</OPTION>
        <OPTION
                                value=2474>2474</OPTION>
        <OPTION
                                value=2473>2473</OPTION>
        <OPTION
                                value=2472>2472</OPTION>
        <OPTION
                                value=2471>2471</OPTION>
        <OPTION
                                value=2470>2470</OPTION>
        <OPTION
                                value=2469>2469</OPTION>
        <OPTION
                                value=2468>2468</OPTION>
        <OPTION
                                value=2467>2467</OPTION>
        <OPTION
                                value=2466>2466</OPTION>
        <OPTION
                                value=2465>2465</OPTION>
        <OPTION
                                value=2464>2464</OPTION>
        <OPTION
                                value=2463>2463</OPTION>
        <OPTION
                                value=2462>2462</OPTION>
        <OPTION
                                value=2461>2461</OPTION>
        <OPTION
                                value=2460>2460</OPTION>
        <OPTION
                                value=2459>2459</OPTION>
        <OPTION
                                value=2458>2458</OPTION>
        <OPTION
                                value=2457>2457</OPTION>
        <OPTION
                                value=2456>2456</OPTION>
        <OPTION
                                value=2455>2455</OPTION>
        <OPTION
                                value=2454>2454</OPTION>
        <OPTION
                                value=2453>2453</OPTION>
        <OPTION
                                value=2452>2452</OPTION>
        <OPTION
                                value=2451>2451</OPTION>
        <OPTION
                                value=2450>2450</OPTION>
        <OPTION
                                value=2449>2449</OPTION>
    </SELECT>

Administrator
Wed 29 Mar 2006 21:58:04
$dt[0] = "03/2006";
$dt[1] = "04/2006";
$dt[2] = "05/2006";

เป็นการยกตัวอย่างเท่านั้นครับ จากตัวอย่างโค๊ดที่คุณให้มานั้น ถ้าคุณ submit form ด้วย HTTP POST จะได้เป็น

$dt[0] = $_POST["work_from_month1"]."/".$_POST["work_from_year1"]; // จะได้สตริงในรูปแบบ "03/2006"
$dt[0] = $_POST["work_from_month2"]."/".$_POST["work_from_year2"]; // จะได้สตริงในรูปแบบ "03/2006"
$dt[0] = $_POST["work_from_month3"]."/".$_POST["work_from_year3"]; // จะได้สตริงในรูปแบบ "03/2006"

$dt = implode("##", dt);
จะได้เป็น "03/2006##03/2006##03/2006"

ประมาณนี้ครับ
moolee
moolee
Fri 31 Mar 2006 09:38:29

$gpa = $gpa1."##".$gpa2."##".$gpa3;  เก็บลง DB

ต้องการให้แสดงออกมาเป็น textfiele$gpa1  textfiele$gpa2  textfiele$gpa3 ต้องใช้วิธี explode ออกมาด้วยคำสั่งแบบไหนค่ะ ลองทำหลายแบบแล้วไม่ออกน่ะค่ะ รบกวนด้วยค่ะ

Administrator
Fri 31 Mar 2006 11:22:23
$gpa = explode("##", $gpa); // จะได้เป็น $gpa[0], $gpa[1], $gpa[2]

ส่วนการนำไปแสดงใน textbox ก็

<input type="text" name="gpa1" value="<? echo $gpa[0]; ?>">

<input type="text" name="gpa2" value="<? echo $gpa[1]; ?>">

<input type="text" name="gpa3" value="<? echo $gpa[2]; ?>">
moolee
moolee
Fri 31 Mar 2006 16:19:45

$gpa = explode("##", $gpa); // จะได้เป็น $gpa[0], $gpa[1], $gpa[2]

ก่อนคำสั่งนี้   ใช้คำสั่งแบบนี้  แต่มันไม่แสดงข้อมูลค่ะ

include("connect.php") ;
mysql_select_db($db) ;
$result = mysql_query("select * from array_job ") or die ("Err Can not to result") ;
$gpa =explode("##",$gpa);
$emp_job=explode("##",$emp_job);
while($dbarr = mysql_fetch_array($result)) {

$i = 0;

$gpa = $dbarr['gpa'][0];
$i++;

}

Administrator
Sat 1 Apr 2006 02:32:34

อืมม์ ผมไม่แน่ใจว่า field ที่คุณใช้เก็บข้อมูลชื่อว่าอะไรนะครับ

$result = mysql_query("select * from array_job ") or die ("Err Can not to result") ;
$gpa =explode("##",$gpa);
$emp_job=explode("##",$emp_job);

จากตัวสีแดงข้างบนผมไม่แน่ใจว่าตัวแปรดังกล่าวมีการประกาศค่าไว้ก่อนหน้านี้หรือไม่

while($dbarr = mysql_fetch_array($result)) {
$i = 0;
$gpa = $dbarr['gpa'][0];
$i++;
}

ตัวแปร $i ถ้าคุณต้องการใช้เป็น index เพื่อใช้ในการนับต้องประกาศไว้นอก loop ครับ

ส่วน $dbarr เป็นตัวแปรที่ได้จาก mysql_fetch_array() นั้นจะเป็น array 1 มิติครับ จากที่คุณใช้นั้นใช้ใน array 2 มิติครับ

ซึ่งที่ถูกควรจะเป็น

include("connect.php") ;
mysql_select_db($db) ;
$result = mysql_query("select * from array_job ") or die ("Err Can not to result") ;

$i = 0;
while($dbarr = mysql_fetch_array($result)) {
$gpa[$i] = $dbarr["gpa"];
$i++;
}

จากข้างต้นจะได้ผลลัพธ์เป็น $gpa[0], $gpa[1],...  ไปเรื่อยๆเท่าจำนวน Records ที่มีผลต่อการ Query ครับ

moolee
moolee
Sat 1 Apr 2006 11:05:36

เกี่ยวกับแนวคิดการทำงานเรื่อง array น่ะค่ะ  ว่า array นั้นเป็นเพียงแนวความคิดที่ผู้เขียนโปรแกรมจะนำมาประยุกต์ใช้งาน  ว่าข้อมูลที่เก็บลง dBนั้น  ถ้าหากนำมาแสดงผล เราจะมองว่าข้อมูลพวกนั้นเป็น array สำหรับ db นี้ว่าเก็บ records อะไรลงไปบ้าง  มีข้อสงสัยนะค่ะว่า  เก็บข้อมูลแบบที่ทำ $gpa = $gpa1."##".$gpa2."##".$gpa3;  เก็บลง DB มันมีเครื่องหมายคั่น  มันหมายความว่าเก็บเป็น array รึเปล่าค่ะ  เพราะหลังใช้คำสั่งที่คุณแนะนำมา

include("connect.php") ;
mysql_select_db($db) ;
$result = mysql_query("select * from array_job ") or die ("Err Can not to result") ;

$i = 0;
while($dbarr = mysql_fetch_array($result)) {
$gpa[$i] = $dbarr["gpa"];
$i++;
}

มันมองเป็นคนละ records โดยเป็นแบบนี้เลยนะค่ะ

$gpa = $gpa1."##".$gpa2."##".$gpa3;  1 record

$gpa = $gpa1."##".$gpa2."##".$gpa3;  1 record  อย่างนี้ไปเรื่อย  ๆ น่ะค่ะ

แต่ความต้องการคือ ต้องการให้มอง  $gpa1.  เป็น 1 recods

$gpa2 1 records

$gpa3 1 records

ผลก็คือมันไม่แสดงค่าที่ต้องการนะค่ะ  มันดึงข้อมูลออกมา แบบนี้  3.23##3.00##3.75

ถ้าหากต้องการให้แสดงตรงหน้าแบบฟอร์มในช่อง textfield กับไฟล์ที่มีแบบซ้ำ ๆ กันต้องใช้วิธีไหนค่ะ

     $emp_education_level=explode("##",$emp_education_level);
    $emp_major = explode("##",$emp_major);
    $emp_branch =explode("##",$emp_branch);
    $emp_gyear = explode("##",$emp_gyear);
    $gpa = explode("##",$gpa);

Administrator
Sat 1 Apr 2006 20:02:26
เก็บข้อมูลแบบที่ทำ $gpa = $gpa1."##".$gpa2."##".$gpa3;  เก็บลง DB มันมีเครื่องหมายคั่น  มันหมายความว่าเก็บเป็น array รึเปล่าค่ะ

ในการเก็บลงฐานข้อมูลโดยมาตรฐานแล้วไม่มี field ชนิด array อยู่แล้วครับ ดังนั้นวิธีที่ทำการเสนอนั้นเป็นการประยุกต์ใช้งานครับ


มันมองเป็นคนละ records โดยเป็นแบบนี้เลยนะค่ะ

$gpa = $gpa1."##".$gpa2."##".$gpa3;  1 record

$gpa = $gpa1."##".$gpa2."##".$gpa3;  1 record

แน่นอนครับเนื่องจากการเก็บในฐานข้อมูลนั้นมองเป็น record ครับ เพียงแต่ว่าคุณอาจจะออกแบบเป็น 1 profile ต่อ 1 record ก็ได้ครับ หลังจากนั้นเวลาแสดงผลก็ทำการ SELECT มาเพียง record เดียวครับ ส่วนข้อมูลที่มีค่าคล้ายๆกันก็เก็บเป็น string โดยมีอักขระคั่นก็ได้ครับ ซึ่งทั้งหมดนี้เป็นการใช้หลักการในการออกแบบโครงสร้างฐานข้อมูล ซึ่งก็ขึ้นอยู่กับความถนัดด้วยครับ
kraja
kraja
Tue 20 Nov 2007 21:37:02


<input size="15" type="text" name="sid[]" value="<?= $id ?>">
<input size="15" type="text" name="sname[]" value="<?= $name?>">
<input size="15" type="text" name="ssname[]" value="<?= $surname ?>">
<input size="5" type="text" name="ssex[]" value= "<?=$sex ?>">

<input name="Submit" type="submit" value="Edit">


<input  name="cusname1" type="text" value="<?  echo $rvar_sid ?>"/>

<input  name="cusname2"   type="text" value="<?  echo $rvar_sname ?>"/>

<input  name="cusname3"  type="text"  value="<?  echo $rvar_ssname ?>"/>

<input  name="cusname4"  type="text"  value="<?  echo $rvar_ssex ?>"/>

มันไม่ออกค่าข้อความอะครนับ มันแสดงเป็นคำว่า ARRAYแทนอะแก้ไงอะครับ

webmaster
webmaster
Wed 21 Nov 2007 09:05:28
ก็ตัวแปรถูกส่งมาเป็น array ครับ ถ้าต้องการแสดงผลก็อาจจะใช้ "," ในการคั่นก็อาจจะใช้ echo implode(",", $var_sid); ก็ได้ครับ
nudee
nudee
Fri 12 Sep 2008 10:31:03

array สามารถนำไปประยุกต์ใช้ได้กับอะไรบ้างคะ ขอตัวอย่าง ,แสดงวิธีทำเป็นการจัดแบบarrayให้ดูได้ไหมคะ ,โค้ดด้วยได้ไหมคะ ต้องการด่วนมากจะต้องทำรายงานและก็นำเสนออารย์ด้วย *ขอบคุณมากค่ะ

webmaster
webmaster
Fri 12 Sep 2008 14:14:43
ถ้าต้องการละเอียดแบบนั้นเข้าไปดูได้ที่ www.php.net/array ซึ่งจะมีหลายท่านเขียนโค๊ดการนำเอาไปใช้ ทิ้งไว้ครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login