ช่วยดูหน่อยครับ ทำไมข้อมูลมันออกมาหมด ไม่ออกมาตามเงื่อนไขที่คิวลี่ออกมา มันผิดตรงไหนครับ รบกวนด้วยครับ
ลองจับมันแยกออกเป็นสัก 2-3 คำสั่งไหม ผมก็เคยเรียกข้อมูลหลายเงื่อนไขแบบนี้แหละ มันก็ทำงานแบบมั่วน่ะ ก็จับแยกออกให้คำส่ังนึ่งมีซัก 1-2 เงื่อนไขพอ มันก็ทำงานตามที่ต้องการน่ะ
Date :
2011-11-15 21:09:12
By :
ozma
แยกยังไงหรอครับ
Date :
2011-11-15 21:41:22
By :
buraratn
Code (PHP)
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$c2 = $_POST['c2'];
if($c or $b){
$query=mysql_query("SELECT * FROM tbldorm where dorm_price >= '$c' or dorm_rent = '$b' ");
}
else if($a or $c2){
$query=mysql_query("SELECT * FROM tbldorm where dorm_dormitory = '$a' or dorm_price <= '$c2' ");
}
$num = mysql_num_rows($query);
if($num > 0 ) {
while($objResult = mysql_fetch_array($query))
{
}
}
ผมก็ใช้วิธีนี้แหละ เวลาที่มีเงื่อนไขเยอะ บางทีเขียนคำสั่งเดียวหลายเงื่อนไข ไล่เงื้อนไขไปมาก็งงเอง
แต่คำสั่งของคุณน่ะ ของเอาไปรันใน phpmyadmin ดูก่อน เท่าที่ดูมันนะ ฟิลด์ที่ใช้เช็คเงื่อนไขมันก็คนละฟิลด์ก็ไม่น่ามีปัญหาเรื่องค่าในฟิลด์
แต่ก็อาจจะมีปัญหาตรงฟิลด์ dorm_price ตรงเงื่อนไข c กับ c2 มั้งนะเพราะมันฟิลด์เดียวกัน อาจเกี่ยวกับค่าในฟิลด์ ก็ลองดูก่อนนะ
Date :
2011-11-16 00:22:05
By :
ozma
ปกติเงื่อนไขในการค้นหามักจะใช้ and มากกว่าครับ
<?php
//...
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$c2 = $_POST['c2'];
$sql = "SELECT * FROM tbldorm where 1=1 ";
if (!empty($c)) $sql.="and dorm_price >= '$c' "; // มีการส่งค่าที่ไม่ว่างมาให้เพิ่มเงื่อนไขเข้าไป
if (!empty($c2)) $sql.="and dorm_price <= '$c2' ";
if (!empty($a)) $sql.="and dorm_dormitory = '$a' ";
if (!empty($b)) $sql.="and dorm_rent = '$b' ";
$sql .= "order by dorm_id asc ";
$rs = mysql_query($sql) or die (htmlspecailchars($sql));
$num_rows = mysql_num_rows($rs);
if($num_rows > 0 ) {
while($r = mysql_fetch_array($sql)){
//...
}
}
?>
Date :
2011-11-16 00:41:07
By :
num
ขอบคุณมากครับ ทั้งสองแบบ Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\full\search_dorm2.php on line 138 คือบรรทัดที่13ของโค้ดที่เอาลงครับ
ไม่พบข้อมูล
Code (PHP)
<?
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$c2 = $_POST['c2'];
if($c or $b){
$query=mysql_query("SELECT * FROM tbldorm where dorm_price >= '$c' or dorm_rent = '$b' ");
}
else if($a or $c2){
$query=mysql_query("SELECT * FROM tbldorm where dorm_dormitory = '$a' or dorm_price <= '$c2' ");
}
$num = mysql_num_rows($query);
if($num > 0 ) {
while($objResult = mysql_fetch_array($query))
{
?>
ประวัติการแก้ไข 2011-11-16 12:48:51 2011-11-16 12:55:12
Date :
2011-11-16 12:47:34
By :
buraratn
โค้ดเต็มครับ จะมี else ที่บรรทัด 170 ด้วยครับCode (PHP)
<?php
$options = $_GET['options'];
session_start() ;
include("config.inc.php") ;
?>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>ระบบค้นหาหอพัก</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
<style type="text/css">
body {margin-right:0px;margin-left: 0px;margin-top:0px;margin-bottom:0px;}
#map_canvas {
width:400px;
height:400px;
margin:auto;
margin-top:20px;
}
</style>
<script language="javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript">
$(function(){
function drag_me(name){
$(name).css({
position:"absolute",
cursor:"move"
});
$(name).mousedown(function(event){
var locateX=event.pageX;
var locateY=event.pageY;
var obj_locateX=$(this).offset().left;
var obj_locateY=$(this).offset().top;
var diff_x=locateX-obj_locateX;
var diff_y=locateY-obj_locateY;
$(this).css("opacity",0.3).mousemove(function(event){
locateX=event.pageX;
locateY=event.pageY;
obj_locateX=$(this).offset().left;
obj_locateY=$(this).offset().top;
new_locateX=locateX-diff_x;;
new_locateY=locateY-diff_y;
$(this).css({
left:new_locateX,
top:new_locateY
}).bind("mouseup mouseout",function(){
$(this).css("opacity",1);
$(this).unbind("mousemove");
});
});
});
}
// การใช้งาน กำหนด selector วัตถุที่ต้องการ
// ในตัวอย่างคือ div ที่มี id เท่ากับ myblock
drag_me("div#myblock");
});
</script>
<style type="text/css">
<!--
.style13 {font-size: small}
.text1 { color: #666;
font-size: x-small;
font-family: Arial, Helvetica, sans-serif;
font-weight: normal;
}
.style15 {
font-size: medium;
font-weight: bold;
}
-->
#map_canvas {
width:600px;
height:600px;
margin:auto;
margin-top:10px;
}
.style19 {color: #000000}
</style>
</head>
<body onLoad="pageLoad();">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">
<tbody><tr>
<td align="center" valign="top"><table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#FFFFFF"><? include 'logo.php'; ?> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><? include 'menu.php'; ?></td>
</tr>
</table>
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" bgcolor="#FFFFFF"><center><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1%" align="left" valign="top"> </td>
<td width="44%" align="left" valign="top"><table width="96%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><? switch($options)
{
default:
{
?></td>
</tr>
</table>
<div>
<b class="spiffy">
<b class="spiffy1"><b></b></b>
<b class="spiffy2"><b></b></b>
<b class="spiffy3"></b>
<b class="spiffy4"></b>
<b class="spiffy5"></b></b>
<div class="spiffyfg">
<center> <table width="98%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
<td><span class="style15">แสดงรายการค้นหา</span></td>
</tr>
<tr>
<td><p class="CurPage style13"> </p> </td>
<td><p class="CurPage style13">
<?
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$c2 = $_POST['c2'];
if($c or $b){
$query=mysql_query("SELECT * FROM tbldorm where dorm_price >= '$c' or dorm_rent = '$b' ");
}
else if($a or $c2){
$query=mysql_query("SELECT * FROM tbldorm where dorm_dormitory = '$a' or dorm_price <= '$c2' ");
}
$num = mysql_num_rows($query);
if($num > 0 ) {
while($objResult = mysql_fetch_array($query))
{
?>
<br />
</p>
<center>
<table width="95%" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="47%" bgcolor="#66CC33"><div align="center" class="style19 style13 style10 style11">
<div align="left"><strong>ชื่อหอพัก</strong></div>
</div></td>
<td width="53%" bgcolor="#66CC33"><div align="center" class="style13 style19 style11">
<div align="left"><strong>รายละเอียด</strong></div>
</div></td>
</tr>
<tr onMouseOver="this.className='menu-over'" onMouseOut="this.className='menu'" class="menu">
<td valign="top"><div align="center" class="style13">
<div align="left"><span class="link style10"><? echo $objResult['dorm_name']; ?></span><br>
<br>
<a href="dorm_detail.php?id=<? echo $objResult['dorm_id']; ?>"><img src="img/icon_detail.th.gif" width="61" height="15" border="0"></a></div>
</div></td>
<td valign="top"><div align="left"><span class="link style10 style13"><? echo $objResult['dorm_about']; ?><br>
<br>
ระยะห่างจากมหาวิทยาลัย <? echo $objResult['dorm_km']; ?> Km.</span></div></td>
</tr>
</table>
<p class="CurPage style13"><br />
<span class="link">
<?
} } else
{
?> ไม่พบข้อมูล <? } ?>
</span></p>
<p class="CurPage style13"> </p>
</td>
</tr>
</table>
</div>
<b class="spiffy">
<b class="spiffy5"></b>
<b class="spiffy4"></b>
<b class="spiffy3"></b>
<b class="spiffy2"><b></b></b>
<b class="spiffy1"><b></b></b></b>
</div>
</td>
<td width="55%" valign="top"> <div id="map_canvas"></div>
<script type="text/javascript">
var map; // กำหนดตัวแปร map ไว้ด้านนอกฟังก์ชัน เพื่อให้สามารถเรียกใช้งาน จากส่วนอื่นได้
var GGM; // กำหนดตัวแปร GGM ไว้เก็บ google.maps Object จะได้เรียกใช้งานได้ง่ายขึ้น
function initialize() { // ฟังก์ชันแสดงแผนที่
GGM=new Object(google.maps); // เก็บตัวแปร google.maps Object ไว้ในตัวแปร GGM
// กำหนดจุดเริ่มต้นของแผนที่
var my_Latlng = new GGM.LatLng(14.85467,103.48357);
// กำหนด DOM object ที่จะเอาแผนที่ไปแสดง ที่นี้คือ div id=map_canvas
var my_DivObj=$("#map_canvas")[0];
// กำหนด Option ของแผนที่
var myOptions = {
zoom: 14, // กำหนดขนาดการ zoom
center: my_Latlng , // กำหนดจุดกึ่งกลาง
mapTypeId:GGM.MapTypeId.ROADMAP, // กำหนดรูปแบบแผนที่
mapTypeControlOptions:{ // การจัดรูปแบบส่วนควบคุมประเภทแผนที่
position:GGM.ControlPosition.TOP, // จัดตำแหน่ง
style:GGM.MapTypeControlStyle.DROPDOWN_MENU // จัดรูปแบบ style
}
};
map = new GGM.Map(my_DivObj,myOptions);// สร้างแผนที่และเก็บตัวแปรไว้ในชื่อ map
$.ajax({
url:"getsearch_dorm3.php?a=<? echo $a; ?>&b=<? echo $b; ?>&c=<? echo $c; ?>", // ใช้ ajax ใน jQuery เรียกใช้ไฟล์ xml
dataType: "xml",
success:function(xml){
$(xml).find('marker').each(function(){ // วนลูปดึงค่าข้อมูลมาสร้าง marker
var markerID=$(this).attr("id");// นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน
var markerName=$(this).find("name").text(); // นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน
var markerLat=$(this).find("latitude").text(); // นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน
var markerLng=$(this).find("longitude").text(); // นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน
var markerLatLng=new GGM.LatLng(markerLat,markerLng);
var my_Marker = new GGM.Marker({ // สร้างตัว marker
position:markerLatLng, // กำหนดไว้ที่เดียวกับจุดกึ่งกลาง
map: map, // กำหนดว่า marker นี้ใช้กับแผนที่ชื่อ instance ว่า map
title:markerName // แสดง title เมื่อเอาเมาส์มาอยู่เหนือ
});
// console.log($(this).find("id").text());
});
}
});
}
$(function(){
$("<script/>", {
"type": "text/javascript",
src: "http://maps.google.com/maps/api/js?v=3.2&sensor=false&language=th&callback=initialize"
}).appendTo("body");
});
</script></td>
</tr>
</table>
<p><br>
</p>
<center><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<br></td>
</tr>
</table>
<p> </p>
<p> </p>
<p>
<?
}
break;
}
?>
</p>
<p> </p>
<p> </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><? include 'foorter.php'; ?></td>
</tr>
</table> <p> </p></td>
</tr>
</table></td>
</tr>
</tbody></table>
</div>
</body></html>
Date :
2011-11-16 12:53:38
By :
buraratn
แบบนี้ก็เออเลอร์ครับ บรรทัด while ($r =mysql_fetch_array($sql))Code (PHP)
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$c2 = $_POST['c2'];
$sql = "SELECT * FROM tbldorm where 1=1 ";
if (!empty($c)) $sql.="and dorm_price >= '$c' "; // มีการส่งค่าที่ไม่ว่างมาให้เพิ่มเงื่อนไขเข้าไป
if (!empty($c2)) $sql.="and dorm_price <= '$c2' ";
if (!empty($a)) $sql.="and dorm_dormitory = '$a' ";
if (!empty($b)) $sql.="and dorm_rent = '$b' ";
$sql .= "order by dorm_id asc ";
$rs = mysql_query($sql) or die (htmlspecailchars($sql));
$num_rows = mysql_num_rows($rs);
if($num_rows > 0 ) {
while ($r =mysql_fetch_array($sql))
{
?>
ประวัติการแก้ไข 2011-11-16 17:32:13
Date :
2011-11-16 17:31:23
By :
buraratn
บรรทัด while เปลี่ยน $sql เป็น $rs
Date :
2011-11-17 17:09:46
By :
ozma
Load balance : Server 05