Author Topic: Xây dựng chương trình Quản lý học viên  (Read 59737 times)

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #15 on: June 21, 2007, 05:41:32 AM »
Code: [Select]
<form method="post" action="abc.php">
<?php for ($i $i 10 $i++) { ?>
<INPUT type="checkbox" name="idlist[]" value="<?php echo $i;?>">Chon
<?php
}
?>

<input type="submit" name="submit" value="submit">
</form>
File abc.php
Code: [Select]
<?php
$idlist 
$_POST["idlist"];
for(
$i 0$i sizeof($idlist); $i++) {
$key_id $idlist[$i];
INSERT VO Database  
}
?>


Vấn đề đơn giản chỉ là tên của INPUT phải là mảng , ví dụ idlist[] ... Sau đó khi đọc dữ liệu ta sẽ đọc từng giá trị trong mảng , như thế thì mới chọn được nhiều checkbox và lưu giữ được nhiều giá trị.
« Last Edit: June 21, 2007, 06:13:26 AM by doangia »
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...

Ácman

  • PHP Intermediate
  • *
  • Posts: 401
  • If it's worth having, it's worth fighting for
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #16 on: June 22, 2007, 02:01:16 AM »
Ko làm tự động thế dc, vì mỗi ô chọn còn phải kèm theo chú thích bên cạnh. Cứ làm chân phương thôi:

<input type="checkbox" name="xxx" value="1" />xxx
<input type="checkbox" name="yyy" value="1" />yyy
...

Sau đó thì đổ giá trị mỗi checkbox vào 1 trường, tớ chưa thấy vấn đề ở đâu cả  ???

dreamman

  • PHP Intermediate
  • *
  • Posts: 41
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #17 on: June 22, 2007, 05:12:57 AM »
Vâng bác LazyDog nói đúng. Nhưng mình vẫn muốn cái giá trị của check vào trong một trường.
SỐNG TRÊN ĐỜI AI CŨNG CÓ ƯỚC MƠ, NHƯNG KHÁC NHAU Ở CHỖ...CÓ MẤY AI DÁM BIẾN ƯỚC MƠ CỦA MÌNH THÀNH HIỆN THỰC

Ácman

  • PHP Intermediate
  • *
  • Posts: 401
  • If it's worth having, it's worth fighting for
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #18 on: June 22, 2007, 05:55:36 AM »
Cho các giá trị của check vào trong 1 trường? Sao làm thế dc? ???

dreamman

  • PHP Intermediate
  • *
  • Posts: 41
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #19 on: June 22, 2007, 06:47:42 AM »
Quote
Cho các giá trị của check vào trong 1 trường? Sao làm thế dc? Huh

Có thể đây lý do tạo sao mìnhlàm hoài mà dữ liệu kô vào database mặc dù thấy đúng hết

Quote
<form method=post action="" >
<p class="style3">Course Information :</p>
      <?
   $course=implode("-",$_POST["ci"]);
        echo $course vậy là
   ?>
  <table width="100%" border="0" bgcolor="#CCCCCC">
    <tr>
      <td width="36%"><label>
        <input type="checkbox"  name=ci[] value=EfL />
      English for Life</label></td>
      <td width="38%" rowspan="4"><label>
        <input type="checkbox" name=ci[] value=IELTS />
      IELTS Exam Preparation</label></td>
      <td width="26%"><label>
        <input type="checkbox" name=ci[] value=Speaking />
      Speaking</label></td>
    </tr>
    <tr>
      <td rowspan="2"><label>
        <input type="checkbox" name=ci[] value=EfS />
      English for Study</label></td>
      <td><label>
        <input type="checkbox" name=ci[] value=Writing />
      Writing</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name=ci[] value=Reading />
      Reading</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name=ci[] value=EfP />
      English for Professional</label></td>
      <td><label>
        <input type="checkbox" name=ci[] value=Listening />
      Listening</label></td>
    </tr>
  </table>
 <input type=submit name=submit value="Submit" />
</form>
vậy là lấy đc dữ liệu rồi, nhưng kô cách nào đưa vào database cả  ???
« Last Edit: June 22, 2007, 06:52:21 AM by dreamman »
SỐNG TRÊN ĐỜI AI CŨNG CÓ ƯỚC MƠ, NHƯNG KHÁC NHAU Ở CHỖ...CÓ MẤY AI DÁM BIẾN ƯỚC MƠ CỦA MÌNH THÀNH HIỆN THỰC

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #20 on: June 22, 2007, 08:12:15 AM »
Bác muốn lưu chung 1 trường là thế nào ... Ví dụ khách chọn 3 mục EFl, IELTS ,EfS thì bác sẽ lưu cả 3 giá trị đó chung 1 feild phải ko ? thế thì cứ cho nó vào 1 chuỗi ( cách nhau bằng dấu , hay # gì chẳng hạn) thế là lưu vào thôi , có gì mà phức tạp nhĩ , lúc đọc ra thì lại tách ra.
Ví dụ thế này
Code: [Select]
<?php
$ci 
$_POST["ci"];
$giatri "";
for(
$i 0$i sizeof($ci); $i++) {
$key_id $idlist[$i];
$giatri .= ",".$key_id;
}
?>


sau đó cứ InSERT $giatri vào feild nào bạn muốn.
---
P/s : hình như PHP có hàm gì đấy để dồn cái giá trị trong mảng thành 1 chuỗi cách nhau bởi ký tự gì đó nhưng ko nhớ , lười search quá.
« Last Edit: June 22, 2007, 08:21:35 AM by doangia »
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...

Ácman

  • PHP Intermediate
  • *
  • Posts: 401
  • If it's worth having, it's worth fighting for
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #21 on: June 22, 2007, 08:27:16 AM »
Thế này là đơn giản nhất:

Trước hết ta xác định để thuận tiện cho việc lọc thông tin về học viên sau này (VD như lọc ra xem có bao nhiêu người đăng ký 1 khoá học nào đó) thì phải lập riêng mỗi 1 checkbox ứng với 1 trường, kiểu boolean, 1 nghĩa là ng dùng chọn, 0 là ko chọn, ta để default là 0. Đã xác định từ đầu như vậy thì ko cần phải nhập hay tách chuỗi j cho thêm phức tạp.

Mảng $_POST['ci'] chỉ lưu giá trị các ô checkbox mà ng dùng chọn, VD người dùng chọn 2 ô thì mảng đó chỉ có 2 phần tử: $_POST['ci'][0] và $_POST['ci'][1]. Ta sẽ kiểm tra mảng này để xem ng dùng đã chọn ô nào, từ đó update trường tương ứng thành giá trị 1. VD:

Code: [Select]
<?php
$course $_POST[&#39;ci&#39;];
for($i 0$i sizeof($course); $i++) {
switch ($course[i]) {
case &#39;ELF&#39;:
//UPDATE truong ELF thanh 1
break;
case &#39;IELTS&#39;:
//UPDATE truong IELTS thanh 1
break;
case &#39;Speaking&#39;:
//UPDATE truong Speaking thanh 1
break;
//...
}
}  
?>

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #22 on: June 22, 2007, 08:29:02 AM »
Nhớ hàm đó rồi , implode (ký tự , mảng) ( ngược với explode)
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...

Ácman

  • PHP Intermediate
  • *
  • Posts: 401
  • If it's worth having, it's worth fighting for
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #23 on: June 22, 2007, 09:05:35 AM »
Nguyên tắc là ko bao h cho 1 cell chứa nhiều giá trị. Nếu vi phạm điều này chắc chắn sau sẽ khóc thét ;D

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #24 on: July 11, 2007, 02:25:49 PM »
Dự án này thế nào rồi nhĩ ? Lâu quá không thấy báo cáo tiến trình. Chắc xong rồi nhĩ.
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...

dreamman

  • PHP Intermediate
  • *
  • Posts: 41
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #25 on: July 19, 2007, 04:34:56 PM »
Alo chào cả nhà a.  ;D !
mấy bữa trước vào diễn dàn hoài không đc, em tưởng cò chuyện gì.

Bây giờ xin đc báo cáo các Bác cái Database của công ty em:

Đầu tiên cho em xin đc trình bày lại cấu trúc của Database vì em co thay đổi đôi chút:



Đầu tiên học viên tới đc ghi lại thông tin nhưng vì họ có thể chưa muốn học, đến khi họ có điểm làm bài test và đó tiền học thì trở thành học viên của trung tâm và có một Id No.

Còn đây là phần nhập liệu đệ đã làm và vài trang Reporting..chưa hoàn chỉnh lắm...các huynh coi rồi cho đệ hỏi vài câu khoản 101 câu thôi hà ;D ( Có thật sự làm mới thấy nhiều vấn đề )

SỐNG TRÊN ĐỜI AI CŨNG CÓ ƯỚC MƠ, NHƯNG KHÁC NHAU Ở CHỖ...CÓ MẤY AI DÁM BIẾN ƯỚC MƠ CỦA MÌNH THÀNH HIỆN THỰC

Ácman

  • PHP Intermediate
  • *
  • Posts: 401
  • If it's worth having, it's worth fighting for
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #26 on: July 19, 2007, 05:08:20 PM »
Lão Doangia ráng chiến dzụ này nhá, để tớ tập trung bing lực chiến cái regex ;D

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #27 on: July 21, 2007, 11:49:21 AM »
Đang nghiên cứu cái code ... chưa thấy vấn đề gì ;D
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...

dreamman

  • PHP Intermediate
  • *
  • Posts: 41
    • View Profile
Re: Xây dựng chương trình Quản lý học viên
« Reply #28 on: July 23, 2007, 03:17:20 PM »
Mấy huynh cho đệ hỏi. Giờ đệ muốn nhập ngày tháng vào database nhưng MySQL chỉ hiểu ngày tháng dạng yyyy-MM-dd, còn đệ lại muốn nhập vào dạng dd/MM/yyyy từ From thì làm thế nào ? Và khi lấy dữ liệu ra cũng ở dạng dd/MM/yyyy.

Quesion No.1 ;D
SỐNG TRÊN ĐỜI AI CŨNG CÓ ƯỚC MƠ, NHƯNG KHÁC NHAU Ở CHỖ...CÓ MẤY AI DÁM BIẾN ƯỚC MƠ CỦA MÌNH THÀNH HIỆN THỰC

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Xây dựng chương trình Quản lý học viên
« Reply #29 on: July 23, 2007, 03:54:42 PM »
Câu này khó quá , hỏi câu khác đi ;D ;D
Hehe , cố gắng trả lời đây :
Đơn giản là viết 2 cái function , 1 cái để chuyển sang date dạng của MySql lúc Insert dữ liệu vào Mysql, Function thứ 2 là ngược lại .
Demo luôn 2 cái function ( check lại nhá , ko chắc lắm đâu)

Function 1 : Chuyển date sang định dạng date của mysql :
Code: [Select]
<?php
function convert_date_to_mysql($date)
{
if (!empty($date))
{
$patterns = array ("/(\d{1,2})\/(\d{1,2})\/(19|20)(\d{2})/");
$replace = array ("\\3\\4-\\2-\\1");
return preg_replace($patterns$replace$date);
}
return "";
}
?>


Function thứ 2 : "Dịch" date từ định dạng quái lạ của mysql sang định dạng thông thường
Code: [Select]
<?php
 
function convert_date_from_mysql($date,$break=false,$format="\\4/\\3/\\1\\2")
{
if (!empty($date)) 
{
$patterns 
array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
"/(\d{1,2}):(\d{1,2}):(\d{1,2})/");
$replace = array ($format, ($break?"<br>":"")."\\1h \\2' \\3\"");
return preg_replace($patterns$replace$date);
}
return "";
}
?>


Đây chỉ là 1 cách dùng RegExp ... Nếu ko biết cái này ( giống như tớ ) thì cứ tách nó ra rồi đảo vị trí lại. Ví dụ thế này, date dạng dd/mm/yyyy => yyyy/mm/dd
Code: [Select]
<?php
function date_to_date($date)
{
$a explode('/',$date);
if(sizeof($a)==3)
{

return ($a[2].'/'.$a[1].'/'.$a[0]);
}
}
?>

« Last Edit: July 23, 2007, 04:21:25 PM by doangia »
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...