#57367 gửi bởi tntrucsp2
Ngày 29 Tháng 06 2010 , 22:11
Mình tạo ra code tra cứu điểm tuyển sinh nhưng chưa tối ưu, mới chỉ tra cứu được khi gõ bằng số báo danh, hoặc là bằng tên nhưng phải đúng tên phân biệt chữ hoa chữ thường thì mới tra được. Ví dụ: muốn tra của thí sinh: Lê Kiều Anh thì phải gõ đúng chữ Lê Kiều Anh thì mới tra cứu được. Còn nếu gõ lê kiều anh thì không tra cứu được. Mình muốn tra cứu không phân biệt chữ hoa chữ thường thì làm kiểu gì. Mình đã code rồi nhưng không được. Các bạn xem hộ mình code phía dưới với
Mã: Chọn hết
<?php
$truong = 'diemluat';
$ten= $_POST['txtSearch'];

function standard($diem)
{
if (strlen($diem)==1) { $diem='000'.$diem;}
if (strlen($diem)==2) { $diem='00'.$diem;}
if (strlen($diem)==3) { $diem='0'.$diem;}
return $diem;
}

if($truong=="")
{
echo "ko tim thay";
header('Location: index.php');
exit;
}
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'ts2';
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Loi he thong, khong the ket noi voi CSDL. Ma loi: ' . mysql_error());
mysql_select_db ($dbname);
mysql_query("SET NAMES utf8");
if(is_numeric($ten))
{
$sql='SELECT * FROM sp2009 WHERE `SBD`="'.$ten.'"';
}
else
{
$sql='SELECT * FROM sp2009 WHERE `HOTEN`="'.$ten.'"';
}
//thay the font
function chuthuong ($ten) {
//Tìm các ký tự chữ IN HOA tiếng việt trong chuỗi
$timthay=array(
'Á','À','Ả','Ã','Ạ','Â','Ấ','Ầ','Ậ','Ẩ','Ẫ','Ă','Ắ','Ằ','Ặ','Ẵ','Ẳ','Đ','Ê','Ế','Ề','Ệ','Ể','Ễ',
'Ô','Ố','Ồ','Ộ','Ổ','Ỗ','Ơ','Ớ','Ờ','Ợ','Ỡ','Ở','Ư','Ứ','Ừ','Ự','Ữ','Ử','Ị','Ì','Í','Ĩ','Ỉ',
'Ý','Ỳ','Ỵ','Ỷ','Ỹ','Ù','Ú','Ụ','Ũ','Ủ'
);
//Thay thế bằng chữ thường ương ứng, nếu các bạn thấy còn thiếu ký tự nào thì cứ thêm vào vị trí tương ứng
$thaythe = array(
'á','à','ả','ã','ạ','â','ấ','ầ','ậ','ẩ','ẫ','ă','ắ','ằ','ặ','ẵ','ẳ','đ','ê','ế','ề','ệ','ể','ễ',
'ô','ố','ồ','ộ','ổ','ỗ','ơ','ớ','ờ','ợ','ỡ','ở','ư','ứ','ừ','ự','ữ','ử','ị','ì','í','ĩ','ỉ',
'ý','ỳ','ỵ','ỷ','ỹ','ù','ú','ụ','ũ','ủ',
);

$ten = str_replace($timthay,$thaythe, $ten);
return strToLower($ten);
}
//phan thay the font
//echo $sql;
$result=mysql_query($sql) or die('Error ,query failed1');

?>
<html><head>
<title>Tra cuu tuyen sinh</title>
<meta http-equiv="REFRESH" content="900">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="http://localhost/dts2009/templates/rhuk_solarflare_ii/css/template_css.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src="http://localhost/dts2009/images/vietuni.js" type="text/javascript"></script>



</head><body leftmargin="0" topmargin="0" onLoad="onFormLoad()">
<form name="frm" method="post" action="ketqua.php" id="frm" onSubmit="return onFormSubmit()">

<table bgcolor="#E9EFF2" align="center" cellspacing="0" cellpadding="0" width="90%">
<tbody><tr>
<td class="Title" align="center" width=90%>

<font face="verdana" size="3" color="blue"><strong>TRA CỨU ĐIỂM TUYỂN SINH</strong></font>
</tr>
</tbody></table>
<hr width="90%">

<table bgcolor=#E9EFF2 align="center" cellspacing="5" width="90%">
<tbody>
<tr>
<td class="Label" width="100%" align="center"> Nh&#7853;p H&#7885; t&#234;n ho&#7863;c S&#7889; báo danh <br>
<font color=crimson>(S&#7889; BD ch&#7881; nh&#7853;p ph&#7847;n s&#7889;)</font>
<br /><input name="txtSearch" size="36" id="txtSearch" type="text" onKeyUp="initTyper(this);" value=''>
<input name="cmdSearch" value="Xem &#273;i&#7875;m" id="cmdSearch" type="submit">
</td>
</tr>
<tr>

<td class="Label" align="center">
<input onClick="setTypingMode(4)" type="radio" value="0" id="cboLanguage" name="cboLanguage">
Bật bộ gõ tiếng Việt
<input onClick="setTypingMode(0)" CHECKED type="radio" value="1" id="cboLanguage" name="cboLanguage">
Tắt

</tr>

</tbody>
</table>
<hr width="90%">

<table bgcolor=#E9EFF2 align="center" cellspacing="2" width="90%" height="30">
<tbody><tr align="right" height="30">
<td align="center"><FONT COLOR=RED SIZE=4>
K&#7870;T QU&#7842; T&#204;M KI&#7870;M</FONT>
</td>

</tr>
</tbody></table>
<table bgcolor=#E9EFF2 id="dgrResult" align="center" border="0" cellpadding="4" cellspacing="1" width="90%">
<tbody><tr bgcolor="#0061BE">

<td align="center" nowrap><font color="#FFFFFF"><b>S&#7889; BD</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>H&#7885; V&#224; T&#234;n</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>Ng&#224;y Sinh</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>Kh&#7889;i</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 1</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 2 </b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 3</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>DTC0</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>DTC</b></font></td>
</tr>

<?php
while(list($HOTEN,$NGAYSINH,$KHOI,$D1,$D2,$D3,$DTC0,$TS,$SBD) = mysql_fetch_array($result, MYSQL_NUM))
{

$HOTEN=standard($HOTEN);
$d1=standard($D1);
$d2=standard($D2);
$d3=standard($D3);
$DTC0=standard($DTC0);
$ts=standard($TS);
$SBD=standard($SBD);
?>

<tr height="40" align="center" bgcolor="#ffffff">
<td nowrap align="center"><B><font color="BLUE"><?=$SBD?><FONT><B></td>
<td align="left" nowrap><B><font color="BLUE"><?=$HOTEN?></font></B></td>
<td nowrap align="center"><b><?=$NGAYSINH?></b></td>
<td nowrap align="center"><b><?=$KHOI?></td>
<td nowrap align="center"><b><?=$D1?></td>
<td nowrap align="center"><b><?=$D2?></td>
<td nowrap align="center"><b><?=$D3?></td>
<td nowrap align="center"><b><font color="crimson"><?=$DTC0?></font></td>
<td width="28"><b><?=$TS?></b></td>

</tr>
<?php

}


?>

</tbody></table>
<table bgcolor=#E9EFF2 align="center" cellspacing="2" width="90%" height="5">
<tbody><tr align="right" height="10">
<td align="center">

</td>

</tr>
</tbody></table>


</form>
</body></html>
<?php
@mysql_close($conn);
?>
#57417 gửi bởi anhtu
Ngày 30 Tháng 06 2010 , 19:30

Block "Thêm tôi vào Google+" cho NukeViet:
http://www.nguyenanhtu.net/2011/07/bloc ... eviet.html

My Google+:
https://plus.google.com/100133071209528072246/posts
#57509 gửi bởi tntrucsp2
Ngày 01 Tháng 07 2010 , 23:20
Em đã chuyển sang hàm mb_strtolower($ten); rồi mà sao không được anh nhỉ. Em đang dùng
# Apache Web Server Version 2.0.54
# PHP Script Language Version 5.0.4
# MySQL Database Version 4.1.12a
# phpMyAdmin Database Manager Version 2.6.2-pl1
Em chuyển như thế này anh xem lại sai chỗ nào nữa anh nhé
7-2-2010 10-17-50 AM.png
Đính kèm
(1.93 KB) Đã tải về 47 lần
#57539 gửi bởi hienktktdl
Ngày 02 Tháng 07 2010 , 10:08
Hãy bỏ hàm chu thuong.
thay câu lệnh truy vấn như sau:
$sql="SELECT * FROM sp2009 WHERE (`HOTEN` = '".mb_convert_case($ten, MB_CASE_TITLE, "UTF-8")."' OR 'HOTEN'='".mb_convert_case($ten, MB_CASE_UPPER, "UTF-8")."')";
Với câu lệnh trên có thể gõ chữ thường và chữ IN đều được.
Mã: Chọn hết
<?php
$truong = 'diemluat';
$ten= $_POST['txtSearch'];

function standard($diem)
{
if (strlen($diem)==1) { $diem='000'.$diem;}
if (strlen($diem)==2) { $diem='00'.$diem;}
if (strlen($diem)==3) { $diem='0'.$diem;}
return $diem;
}

if($truong=="")
{
echo "ko tim thay";
header('Location: index.php');
exit;
}
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'ts2';
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Loi he thong, khong the ket noi voi CSDL. Ma loi: ' . mysql_error());
mysql_select_db ($dbname);
mysql_query("SET NAMES utf8");
if(is_numeric($ten))
{
$sql='SELECT * FROM sp2009 WHERE `SBD`="'.$ten.'"';
}
else
{
$sql="SELECT * FROM sp2009 WHERE (`HOTEN` = '".mb_convert_case($ten, MB_CASE_TITLE, "UTF-8")."' OR 'HOTEN'='".mb_convert_case($ten, MB_CASE_UPPER, "UTF-8")."')";
}
$result=mysql_query($sql) or die('Error ,query failed1');

?>
<html><head>
<title>Tra cuu tuyen sinh</title>
<meta http-equiv="REFRESH" content="900">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="http://localhost/dts2009/templates/rhuk_solarflare_ii/css/template_css.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src="http://localhost/dts2009/images/vietuni.js" type="text/javascript"></script>



</head><body leftmargin="0" topmargin="0" onLoad="onFormLoad()">
<form name="frm" method="post" action="ketqua.php" id="frm" onSubmit="return onFormSubmit()">

<table bgcolor="#E9EFF2" align="center" cellspacing="0" cellpadding="0" width="90%">
<tbody><tr>
<td class="Title" align="center" width=90%>

<font face="verdana" size="3" color="blue"><strong>TRA CỨU ĐIỂM TUYỂN SINH</strong></font>
</tr>
</tbody></table>
<hr width="90%">

<table bgcolor=#E9EFF2 align="center" cellspacing="5" width="90%">
<tbody>
<tr>
<td class="Label" width="100%" align="center"> Nh&#7853;p H&#7885; t&#234;n ho&#7863;c S&#7889; báo danh <br>
<font color=crimson>(S&#7889; BD ch&#7881; nh&#7853;p ph&#7847;n s&#7889;)</font>
<br /><input name="txtSearch" size="36" id="txtSearch" type="text" onKeyUp="initTyper(this);" value=''>
<input name="cmdSearch" value="Xem &#273;i&#7875;m" id="cmdSearch" type="submit">
</td>
</tr>
<tr>

<td class="Label" align="center">
<input onClick="setTypingMode(4)" type="radio" value="0" id="cboLanguage" name="cboLanguage">
Bật bộ gõ tiếng Việt
<input onClick="setTypingMode(0)" CHECKED type="radio" value="1" id="cboLanguage" name="cboLanguage">
Tắt

</tr>

</tbody>
</table>
<hr width="90%">

<table bgcolor=#E9EFF2 align="center" cellspacing="2" width="90%" height="30">
<tbody><tr align="right" height="30">
<td align="center"><FONT COLOR=RED SIZE=4>
K&#7870;T QU&#7842; T&#204;M KI&#7870;M</FONT>
</td>

</tr>
</tbody></table>
<table bgcolor=#E9EFF2 id="dgrResult" align="center" border="0" cellpadding="4" cellspacing="1" width="90%">
<tbody><tr bgcolor="#0061BE">

<td align="center" nowrap><font color="#FFFFFF"><b>S&#7889; BD</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>H&#7885; V&#224; T&#234;n</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>Ng&#224;y Sinh</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>Kh&#7889;i</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 1</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 2 </b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>M&#244;n 3</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>DTC0</b></font></td>
<td align="center" nowrap><font color="#FFFFFF"><b>DTC</b></font></td>
</tr>

<?php
while(list($HOTEN,$NGAYSINH,$KHOI,$D1,$D2,$D3,$DTC0,$TS,$SBD) = mysql_fetch_array($result, MYSQL_NUM))
{

$HOTEN=standard($HOTEN);
$d1=standard($D1);
$d2=standard($D2);
$d3=standard($D3);
$DTC0=standard($DTC0);
$ts=standard($TS);
$SBD=standard($SBD);
?>

<tr height="40" align="center" bgcolor="#ffffff">
<td nowrap align="center"><B><font color="BLUE"><?=$SBD?><FONT><B></td>
<td align="left" nowrap><B><font color="BLUE"><?=$HOTEN?></font></B></td>
<td nowrap align="center"><b><?=$NGAYSINH?></b></td>
<td nowrap align="center"><b><?=$KHOI?></td>
<td nowrap align="center"><b><?=$D1?></td>
<td nowrap align="center"><b><?=$D2?></td>
<td nowrap align="center"><b><?=$D3?></td>
<td nowrap align="center"><b><font color="crimson"><?=$DTC0?></font></td>
<td width="28"><b><?=$TS?></b></td>

</tr>
<?php

}


?>

</tbody></table>
<table bgcolor=#E9EFF2 align="center" cellspacing="2" width="90%" height="5">
<tbody><tr align="right" height="10">
<td align="center">

</td>

</tr>
</tbody></table>


</form>
</body></html>
<?php
@mysql_close($conn);
?>

Một vấn đề cần lưu ý là code của bạn chưa bẫy lỗi nên nếu submit Form khi chưa nhập liệu thì sẽ SHOW toàn bộ CSDL ra màn hình

http://ktktdl.edu.vn
#57592 gửi bởi tntrucsp2
Ngày 03 Tháng 07 2010 , 07:31
Em hiểu rồi. Cái câu truy vấn của bác hienktktdl thực hiện được cho PHP từ 5.0 trở lên. Server của em cài version thấp hơn 5.0. Vậy thì đối với version của PHP 4.4.1 thì phải làm thế nào nhỉ các bác