php รบกวนดูหน่อยค่ะ หน้า search โค้ดมันบอกว่าไม่มีข้อมูล แต่ลองเอาโค้ดไปทำใน Mysql ในdatabase หาค่าเจอ
Code (PHP)
<!DOCTYPE html>
<html lang="en">
จากโค้ดมันบอกว่าไม่มีข้อมูล แต่พอลองเอาค่าที่ echo ออกมาไปลองใน phpmyadmin มีค่าออกมา ผิดตรงไหนรบกวนด้วยนะค่ะ (มือใหม่ทำโปรเจคจบค่ะ)
โค้ดหน้า search
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>ระบบจองห้องเรียน | Log ข้อมูลการเข้าใช้</title>
<!-- Bootstrap Core CSS -->
<link href="administrator/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="administrator/css/business-frontpage.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script language=Javascript>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};
function dochange(src, val) {
var req = Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
document.getElementById(src).innerHTML=req.responseText; //รับค่ากลับมา
}
}
};
req.open("GET", "localtion.php?data="+src+"&val="+val); //สร้าง connection
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); // set Header
req.send(null); //ส่งค่า
}
window.onLoad=dochange('major', -1);
</script>
</head>
<body>
<!-- Navigation -->
<!-- Image Background Page Header -->
<!-- Note: The background image is set within the business-casual.css file. -->
<?php
include("conn/connect_db_server.php");
$term= $_POST['id_academic'];
$major_code=$_POST['major_code'];
$study_group= $_POST['study_group'];
$study_class= $_POST['study_class'];
$sec=$_POST['sec'];
if(!empty($term) && !empty($major_code) && !empty($study_group) && !empty($study_class) && !empty($sec)){
$sql = "SELECT id_booking,Name_surename,room_no,major_code,sub_code,id_type_room,book_date_b,book_time_b,book_time_e,study_group,study_class,sec,term FROM db_booking WHERE term LIKE '%".$term."%' AND major_code LIKE '%".$major_code."%' AND study_group LIKE '%".$study_group."%' AND study_class LIKE '%".$study_class."%' AND sec LIKE '%".$sec."%'order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
echo"$sql";
}else{
$sql = "SELECT id_booking,Name_surename,room_no,major_code,sub_code,id_type_room,book_date_b,book_time_b,book_time_e,study_group,study_class,sec,term FROM db_booking where id_booking = $id_booking order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
}
//$sql_q= mysql_query($sql);
$sql_q= mysql_query($sql) or die (mysql_erorr());
?>
<!-- Page Content -->
<div class="container">
<hr>
<h2>ค้นหาตารางเรียน</h2><hr>
<div class="row">
<?
if($num>0){
while($result= mysql_fetch_array($sql_q)){
$Name_surename = $result['Name_surename'];
$room_no = $result['room_no'];
$major_code = $result['major_code'];
$sub_code = $result['sub_code'];
$book_date_b = $result['book_date_b'];
$book_time_b = $result['book_time_b'];
$book_time_e = $result['book_time_e'];
$study_group = $result['study_group'];
$study_class = $result['study_class'];
$sec = $result['sec'];
$term = $result['term'];
?>
<div class="col-md-3">
<a href="home.php" target="_blank"> <img src="../img-build/<? echo $result['room_no'];?>.jpg"/ class="img-responsive"></a>
</div>
<div class="col-md-9">
<h3><? echo $result['Name_surename']; ?> </h3>
<p>ห้องเรียน :<? echo $result['room_no']; ?></p>
<p>วิชา<span class="text-danger"><? echo $result['sub_code'];?> สาขาวิชา <? echo $result['major_code'];?></span></p>
<p>วันที่เรียน :<? echo $result['book_date_b']; ?></p>
<p>เวลา<span class="text-danger"><? echo $result['book_time_b'];?> สาขาวิชา <? echo $result['book_time_e'];?></span></p>
<br />
<hr>
</div>
<?php
}
$num++;
}
else{
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>";
echo "<script language='javascript'> alert ('ไม่พบข้อมูล')</script>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";
}
mysql_close();
?>
</div></div>
<!-- /.row -->
<!-- /.row -->
<!-- Footer -->
<footer>
<div class="row">
<div class="col-lg-12">
<p>Copyright © Your Website 2014 Design By Korrakit</p>
</div>
</div>
<!-- /.row -->
</footer>
</div>
<!-- /.container -->
<!-- jQuery -->
<script src="administrator/js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="administrator/js/bootstrap.min.js"></script>
</body>
</html>
Tag : PHP, MySQL
Date :
2015-03-19 13:57:00
By :
gungging302
View :
1456
Reply :
16
บรรทัด 80 where id_booking = $id_booking
$id_booking มาจากไหนครับ
อีกอย่างถ้าจะ SELECT ทุกฟิลด์ในตารางใช้ SELECT * FROM สั้นกว่านะ
Date :
2015-03-19 14:46:07
By :
sabaitip
097 .if($num >0){
เอา $num มาจากไหนครับ บรรทัดก่อนหน้าไม่เห็นมีเลย
Date :
2015-03-19 15:04:13
By :
sakuraei
คือปัญหาตอนนี้แสดงค่ามาแล้วค่ะแต่ เมื่อ search ออกมาไม่มีข้อมูลดันไม่ echo มาว่าไม่มีข้อมูล แต่กลายเปนหน้าว่างๆCode (PHP)
<?php
include("conn/connect_db_server.php");
$term= $_POST['id_academic'];
$major_code=$_POST['major_code'];
$study_group= $_POST['study_group'];
$study_class= $_POST['study_class'];
$sec=$_POST['sec'];
if(!empty($term) && !empty($major_code) && !empty($study_group) && !empty($study_class) && !empty($sec)){
$sql = "SELECT id_booking,Name_surename,room_no,major_code,sub_code,id_type_room,book_date_b,book_time_b,book_time_e,study_group,study_class,sec,term FROM db_booking WHERE term LIKE '%".$term."%' AND major_code LIKE '%".$major_code."%' AND study_group LIKE '%".$study_group."%' AND study_class LIKE '%".$study_class."%' AND sec LIKE '%".$sec."%'order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
}else{
$sql = "SELECT * FROM db_booking order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
}
//$sql_q= mysql_query($sql);
$sql_q= mysql_query($sql) or die (mysql_erorr());
?>
<!-- Page Content -->
<div class="container">
<?
if($number<1){
while($result= mysql_fetch_array($sql_q)){
$id_booking = $result['id_booking'];
$Name_surename = $result['Name_surename'];
$room_no = $result['room_no'];
$major_code = $result['major_code'];
$sub_code = $result['sub_code'];
$book_date_b = $result['book_date_b'];
$book_time_b = $result['book_time_b'];
$book_time_e = $result['book_time_e'];
$study_group = $result['study_group'];
$study_class = $result['study_class'];
$sec = $result['sec'];
$term = $result['term'];
?>
<div class="row">
<div class="col-md-12">
<h3>ตารางเรียนสำหรับ นักเรียนระดับ : <?
if($result['study_group']==1) echo "ปริญญาตรี ภาคปกติ" ;
if($result['study_group']==2) echo "ปริญญาตรี ภาคพิเศษ" ;
if($result['study_group']==3) echo "ปริญญาโท แผน ก" ;
if($result['study_group']==4) echo "ปริญญาโท แผน ข" ;
?> ปีการศึกษา : <?
if($result['term']==1) echo "2557 เทอม 1" ;
if($result['term']==2) echo "2557 เทอม 2" ;
?></h3>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-3">
<a href="#" target="_blank"> <img src="administrator/img-build/<? echo $result['room_no'];?>.jpg"/ class="img-responsive"></a>
</div>
<div class="col-md-9">
<h3><? echo $result['Name_surename']; ?> </h3>
<p>ห้องเรียน :<? echo $result['room_no']; ?></p>
<p>วิชา<span class="text-danger"> <? echo $result['sub_code'];?> สาขาวิชา <? echo $result['major_code'];?></span></p>
<p>วันที่เรียน :<? echo $result['book_date_b']; ?></p>
<p>เวลา<span class="text-danger"> <? echo $result['book_time_b'];?> - <? echo $result['book_time_e'];?></span></p>
<br />
<hr>
</div>
<?php
$number++;
}
//ไม่แสดงค่าตรงนี้ออกมาอ่ะค่ะ
}else{
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>";
echo "<script language='javascript'> alert ('ไม่พบข้อมูล')</script>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";
}
mysql_close();
?>
Date :
2015-03-19 15:09:14
By :
gungging302
เพิ่มตัวนี้แร้วนะค่ะ
//$num_rows = mysql_num_rows($sql_q);
Date :
2015-03-19 15:13:26
By :
gungging302
if($number>0 ){
ให้มากกว่า 0 ครับ
Date :
2015-03-19 15:20:49
By :
sakuraei
บรรทัดนี้อะใช้ &&
if(!empty($term) && !empty($major_code) && !empty($study_group) && !empty($study_class) && !empty($sec)){
ถ้าใช้ && ใน if ทั้งหมดต้องมีค่าอยู่นะ
ตอน search ใส่หมดทุกช่องป่าว
แล้วตรงนี้
if($number<1){
จาก No.4 เป็น $num_rows ไม่ใช่เหรอ
ใช้นี่แทน if($num_rows > 0){
Date :
2015-03-19 15:21:21
By :
sabaitip
นี่เปนโค้ดที่แก้ไขตามคำแนะนำของทุกคนแล้วนะค่ะ แต่ก็ยังไม่ได้ค่ะ
คือถ้าเปลี่ยนเป็น = 0 มันก็จะขึ้นว่าไม่พบข้อมูล ทั้งๆที่มีข้อมูล
แต่พอเปลี่ยนให้มัน <1 มันแสดงค่าค่ะ แต่พอเสิดแบบไม่มีข้อมูลก็จะกลายเปนหน้าว่า ไม่ยอมแสดงเปน javascript ว่าไม่มีข้อมูลให้ค่ะ
Code (PHP)
<?php
include("conn/connect_db_server.php");
$term= $_POST['id_academic'];
$major_code=$_POST['major_code'];
$study_group= $_POST['study_group'];
$study_class= $_POST['study_class'];
$sec=$_POST['sec'];
if(!empty($term) && !empty($major_code) && !empty($study_group) && !empty($study_class) && !empty($sec)){
$sql = "SELECT id_booking,Name_surename,room_no,major_code,sub_code,id_type_room,book_date_b,book_time_b,book_time_e,study_group,study_class,sec,term FROM db_booking WHERE term LIKE '%".$term."%' AND major_code LIKE '%".$major_code."%' AND study_group LIKE '%".$study_group."%' AND study_class LIKE '%".$study_class."%' AND sec LIKE '%".$sec."%'order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
}else{
$sql = "SELECT * FROM db_booking order by field(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
}
//$sql_q= mysql_query($sql);
$sql_q= mysql_query($sql) or die (mysql_erorr());
$num_rows = mysql_num_rows($sql_q);
?>
<!-- Page Content -->
<div class="container">
<?
if(num_rows>0){
while($result= mysql_fetch_array($sql_q)){
$id_booking = $result['id_booking'];
$Name_surename = $result['Name_surename'];
$room_no = $result['room_no'];
$major_code = $result['major_code'];
$sub_code = $result['sub_code'];
$book_date_b = $result['book_date_b'];
$book_time_b = $result['book_time_b'];
$book_time_e = $result['book_time_e'];
$study_group = $result['study_group'];
$study_class = $result['study_class'];
$sec = $result['sec'];
$term = $result['term'];
?>
<div class="row">
<div class="col-md-12">
<h3>ตารางเรียนสำหรับ นักเรียนระดับ : <?
if($result['study_group']==1) echo "ปริญญาตรี ภาคปกติ" ;
if($result['study_group']==2) echo "ปริญญาตรี ภาคพิเศษ" ;
if($result['study_group']==3) echo "ปริญญาโท แผน ก" ;
if($result['study_group']==4) echo "ปริญญาโท แผน ข" ;
?> ปีการศึกษา : <?
if($result['term']==1) echo "2557 เทอม 1" ;
if($result['term']==2) echo "2557 เทอม 2" ;
?></h3>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-3">
<a href="#" target="_blank"> <img src="administrator/img-build/<? echo $result['room_no'];?>.jpg"/ class="img-responsive"></a>
</div>
<div class="col-md-9">
<h3><? echo $result['Name_surename']; ?> </h3>
<p>ห้องเรียน :<? echo $result['room_no']; ?></p>
<p>วิชา<span class="text-danger"> <? echo $result['sub_code'];?> สาขาวิชา <? echo $result['major_code'];?></span></p>
<p>วันที่เรียน :<? echo $result['book_date_b']; ?></p>
<p>เวลา<span class="text-danger"> <? echo $result['book_time_b'];?> - <? echo $result['book_time_e'];?></span></p>
<br />
<hr>
</div>
<?php
$num_rows++;
}
}else{
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>";
echo "<script language='javascript'> alert ('ไม่พบข้อมูล')</script>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php'>";
}
mysql_close();
?>
Date :
2015-03-19 15:30:00
By :
gungging302
if($ num_rows>0){
$ หาย
ว่าแต่ บรรทัด 25 - 36 เอาใส่ตัวแปรไว้ทำไมเหรอครับ ไม่เห็นเอาไปใช้
บรรทัดที่ 10 ใช้ * ด้วยก็ได้นะ
หรือจะอย่างนี้
Code (PHP)
$sql = "SELECT * FROM db_booking";
if(!empty($term) && !empty($major_code) && !empty($study_group) && !empty($study_class) && !empty($sec)){
$sql .= " WHERE term LIKE '%".$term."%' AND major_code LIKE '%".$major_code."%' AND study_group LIKE '%".$study_group."%' AND study_class LIKE '%".$study_class."%' AND sec LIKE '%".$sec."%'";
}
$sql .= " ORDER BY FIELD(book_date_b,'mon','tue','wed','thu','fri','sat','sun') ,book_time_b asc";
ประวัติการแก้ไข 2015-03-19 16:04:36 2015-03-19 16:07:10 2015-03-19 16:12:46
Date :
2015-03-19 16:02:23
By :
sabaitip
แนะนำนิดนะครับ สำหรับ select * ถ้าเอาทุก ฟีลด์ จริง ค่อยสมตวรใช้นะครับ
แต่เอา เฉพาะบางฟีลด์ กำหนดไปตรงๆ ดีกว่าครับ
ในการทดสอบอาจใช้ไปก่อนได้
แต่เมื่อใช้งานจริง ให้เรียกใช้เฉพาะ ฟีลด์ที่ใช้งานจริงเท่านั้นครับ
Date :
2015-03-19 16:47:23
By :
Chaidhanan
ทำยังไงหรอค่ะ ถึงได้
Date :
2015-08-31 06:05:05
By :
ศิริน
เวลาเขียน เปิด-ปิด tag PHP ให้เป็น Standard นะครับ
Code (PHP)
<?php
//coding something...
?>
Date :
2015-08-31 08:29:35
By :
geidtiphong
Load balance : Server 02