|
|
|
หากให้แสดงเฉพาะข้อมูลที่กรอกในช่องค้นหาเท่านั้น เช่น ค้นหาคำว่า 1/1 ให้แสดงเฉพาะข้อมูล 1/1 ต้องเขียน code ยังไงครับ |
|
|
|
|
|
|
|
ถ้าต้องการค้นหา ให้แสดงเฉพาะข้อมูลที่กรอกในช่องค้นหาเท่านั้น เช่น ค้นหาคำว่า 1/1 ให้แสดงเฉพาะข้อมูล 1/1 ตอนนี้ที่ผมเจอปัญหาคือมันจะแสดง 1/11 และ 1/12 มาด้วย พอจะมีวิธีการเขียนแก้คำสั่งไหมครับ
index.php
head]Code (PHP)[/head]
<?php require_once('Connections/myConnect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['uname'])) {
$loginUsername=$_POST['uname'];
$password=$_POST['pword'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "info.php";
$MM_redirectLoginFailed = "index.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_myConnect, $myConnect);
$LoginRS__query=sprintf("SELECT `user`, password FROM login WHERE `user`=%s AND password=%s",
GetSQLValueString($loginUsername, "-1"), GetSQLValueString($password, "int"));
$LoginRS = mysql_query($LoginRS__query, $myConnect) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>User_Login</title>
<style type="text/css">
mmm {
text-align: center;
}
.mmmmm {
text-align: center;
}
</style>
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
</head>
<body class="mmmmm">
<form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
<p>ระบบบันทึกข้อมูลสารสนเทศ โรงเรียนกันทรารมณ์</p>
<p>เพื่อประโยชน์ของนักเรียน ขอให้นักเรียนกรอกข้อมูลตามความเป็นจริง</p>
<p>
<label for="uname2">กรอกเลขประจำตัวนักเรียน : </label>
<input type="text" name="uname" id="uname2" placeholder="กรอกเลข 5 หลัก" />
<br />
<label for="pword">กรอกวัน/เดือน/ปีเกิดนักเรียน เช่น 04/05/2540: </label>
<input type="password" name="pword" id="pword" placeholder="กรอกเลข วัน/เดือน/ปี" />
<br />
<input type="submit" name="btnLogin" id="btnLogin" value="เข้าสู่ระบบ !" class="btn btn-primary" />
<br />
<br />
เข้าระบบไม่ได้! <br />
โปรดแจ้ง เลขประจำตัวนักเรียน ไปที่<br />
Line หมายเลขโทรศัพท์: <br />
0956581917<br />
สุดเขตต์ สินธุรัตน์
<br />
</form>
<form id="form2" name="form2" method="post" action="search.php">
<label for="word">เข้าตรวจสอบ "สถานะข้อมูล" ของนักเรียนรายห้อง<br />
เฉพาะ ม.2, ม.3 ม.5 และ ม.6 ปีการศึกษา 2563<br />
กรอก ชั้น/ห้อง เช่น 2/1: </label><br />
<input type="text" name="word" id="word" placeholder="กรอกเลข ชั้น/ห้อง" />
<input type="submit" name="btnSearch" id="btnSearch" value="ค้นหาบัดนาว !" class="btn btn-primary" />
</form>
</body>
</html>
Tag : PHP
|
|
|
|
|
|
Date :
2020-04-23 20:05:06 |
By :
ajsudkedt |
View :
649 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
search.php
Code (PHP)
<?php require_once('Connections/myConnect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_Recordset1 = "-1";
if (isset($_POST['word'])) {
$colname_Recordset1 = $_POST['word'];
}
mysql_select_db($database_myConnect, $myConnect);
$query_Recordset1 = sprintf("SELECT st_id, st_prefix, st_name, st_lastname, status, classroom FROM info WHERE classroom LIKE %s", GetSQLValueString("%" . $colname_Recordset1 . "%", "text"));
$Recordset1 = mysql_query($query_Recordset1, $myConnect) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search_Data</title>
<style type="text/css">
.mid-ok {
text-align: center;
}
.ssdd {
text-align: center;
}
</style>
</head>
<body>
<p class="mid-ok">หากคอลัมน์ "สถานะข้อมูล" ใดขึ้นคำว่า "รอตรวจสอบ" </p>
<p class="mid-ok">แสดงว่านักเรียนยังไม่ได้เข้า ตรวจสอบ-แก้ไขข้อมูล นะครับ</p>
<p class="mid-ok"><a href="index.php">กลับไปหน้าแรก</a></p>
<p class="mid-ok">จำนวนนักเรียนทั้งหมด : <b> <font color="#FF0000"><?php echo $totalRows_Recordset1 ?></b></font> คน</p>
<table border="1" align="center">
<tr class="ssdd">
<td><span class="mid-ok">เลขประจำตัวนักเรียน</span></td>
<td><span class="mid-ok">คำนำหน้าชื่อ</span></td>
<td><span class="mid-ok">ชื่อ</span></td>
<td><span class="mid-ok">นามสกุล</span></td>
<td bgcolor="#FFFF00"><span class="mid-ok">สถานะข้อมูล</span></td>
<td><span class="mid-ok">ระดับชั้น/ห้อง</span></td>
</tr>
<?php do { ?>
<tr class="ssdd">
<td><span class="mid-ok"><?php echo $row_Recordset1['st_id']; ?></span></td>
<td><span class="mid-ok"><?php echo $row_Recordset1['st_prefix']; ?></span></td>
<td><span class="mid-ok"><?php echo $row_Recordset1['st_name']; ?></span></td>
<td><span class="mid-ok"><?php echo $row_Recordset1['st_lastname']; ?></span></td>
<td bgcolor="#FFFF00"><span class="mid-ok"><?php echo $row_Recordset1['status']; ?></span></td>
<td><span class="mid-ok"><?php echo $row_Recordset1['classroom']; ?></span></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
|
|
|
|
|
Date :
2020-04-23 20:06:12 |
By :
ajsudkedt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WHERE classroom LIKE %s .... '%'
เปลี่ยน like เป็น = และ ลบ '%' ออก
ไม่รู้เป็นยังชอบกันจัง คำสั่ง like ตะนี้ตะบันใช้โดยไม่รู้จักอ่าน document ว่ามันทำงานยังไง
แบบนี้ ถ้าเขาบอกให้กินยาพิษแทนข้าว คงตายกันหมดล่ะ
|
|
|
|
|
Date :
2020-04-23 20:14:21 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$query_Recordset1 = sprintf("SELECT st_id, st_prefix, st_name, st_lastname, status, classroom FROM info WHERE classroom LIKE %s", GetSQLValueString("%" . $colname_Recordset1 . "%", "text"));
แก้ยังไงนะครับ
ผมลองแก้ตามแจ้งแล้วยัง run ไม่ได้ครับ
|
|
|
|
|
Date :
2020-04-23 21:02:26 |
By :
ajsudkedt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
และที่บอกว่าแก้แล้วตามแจ้ง แก้ยังเอาโค๊ดที่แก้แล้วมาดู จะได้รู้ว่าเข้าใจยังไง
|
|
|
|
|
Date :
2020-04-23 21:49:32 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแก้ code แบบนี้ครับ
พอ run แล้ว แจ้งแบบนี้ครับ
|
|
|
|
|
Date :
2020-04-24 07:02:06 |
By :
ajsudkedt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetSQLValueString("%" . $colname_Recordset1 . "%"
อยากจะบอกว่าอ่านและทำความเข้าใจด้วย
WHERE classroom LIKE %s .... '%'
เปลี่ยน like เป็น = และ ลบ '%' ออก
สีแดง '%' = "%" เมื่อ % มันอยู่ใน doublequote และไม่ใช่ ตัวแปร ,มันก็ไม่จำเป็นต้องเป็น doublequote
เป็นแค่ singlequote ก็พอ ทำงานเร็วกว่าด้วย
แต่ในที่นี้ ไม่ใช้ เอามันออกไป ทั้งหน้าและหลัง คำค้น
และ mysql sprintf ยุคใหม่นี้เขาไม่ใช้ แล้ว
เขาใช้ mysqli mysql::prepare แล้วหา document มาอ่านบ้างนะครับ กับคำสั่งที่ใช้งาน จะได้รู้ว่ามันทำงานยังไง
|
|
|
|
|
Date :
2020-04-24 08:39:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dev modify ใหม่ดีกว่าครับ sprintf ควรเลิกใช้ และเปลี่ยนเป็น mysqli
ซึ่ง Code ในตอนนี้มันล้าสมัย ควร Update Syntax
|
|
|
|
|
Date :
2020-04-24 12:02:50 |
By :
Genesis™ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|