Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > มีปัญหาในการใช้ if...else...ในการ query ข้อมูลจากฐานข้อมูลครับ



 

มีปัญหาในการใช้ if...else...ในการ query ข้อมูลจากฐานข้อมูลครับ

 



Topic : 080121



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์




ตอนนี้ผมได้ทำการสร้างหน้าเว็บขึ้นมา 2 หน้า

หน้าที่ 1

Code (PHP)
<!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>Untitled Document</title>
</head>

<body>
<p>&nbsp;</p>
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="show_list_month_year.php">
  <label>
  <input type="radio" name="radio" id="radio" value="r1" 
  checked onClick="javaScript:if(this.checked){document.form1.month.disabled=false;}{document.form1.year.disabled=false;}{document.form1.year2.disabled=true;}"/>
  <select name="month" id="month" disabled="disabled">
    <option value="00">= เดือน =</option>
    <option value="01">มกราคม</option>
    <option value="02">กุมภาพันธ์</option>
    <option value="03">มีนาคม</option>
    <option value="04">เมษายน</option>
    <option value="05">พฤษภาคม</option>
    <option value="06">มิถุนายน</option>
    <option value="07">กรกฏาคม</option>
    <option value="08">สิงหาคม</option>
    <option value="09">กันยายน</option>
    <option value="10">ตุลาคม</option>
    <option value="11">พฤศจิกายน</option>
    <option value="12">ธันวาคม</option>
    </select>
  </label>
  <label>
  <select name="year" id="year" disabled="disabled" >
    <option value="00">= ปี =</option>
    <option value="2012">2555</option>
    <option value="2013">2556</option>
    <option value="2014">2557</option>
    <option value="2015">2558</option>
    <option value="2016">2559</option>
    <option value="2017">2560</option>
      </select>
  <br />
  <br />
  <input type="radio" name="radio" id="radio" value="r2" onClick="javaScript:if(this.checked){document.form1.month.disabled=true;}{document.form1.year.disabled=true;}{document.form1.year2.disabled=false;}"
  />
  <select name="year2" id="year2" disabled="disabled">
    <option value="00">= ปี =</option>
    <option value="2012">2555</option>
    <option value="2013">2556</option>
    <option value="2014">2557</option>
    <option value="2015">2558</option>
    <option value="2016">2559</option>
    <option value="2017">2560</option>
  </select>
  <br />
  <br />
  </label>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="ตกลง" />
    </label>
  </p>
</form>
</body>
</html>



ในหน้าที่ 2

Code (PHP)
<?php require_once('Connections/library.php'); ?>
<?
$y = $_POST["year"];
$y2 = $_POST["year2"];
$m = $_POST["month"]; 

?>
<style type="text/css">
@import url("css.css"); 
</style> 
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $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;
}
}

mysql_select_db($database_library, $library);
if($_POST["r1"] == "r1")
{
$query_january = "SELECT book_name,book_isbn,day_show , count(borrow_isbn) as maxid FROM member_borrow   INNER JOIN book ON member_borrow.borrow_isbn = book.book_isbn WHERE member_borrow.day_show like '%-$m-$y' GROUP BY borrow_isbn ORDER BY maxid desc limit 15  ";
}
else
{
$query_january = "SELECT book_name,book_isbn,day_show , count(borrow_isbn) as maxid FROM member_borrow   INNER JOIN book ON member_borrow.borrow_isbn = book.book_isbn WHERE member_borrow.day_show like '%-%-$y2' GROUP BY borrow_isbn ORDER BY maxid desc limit 15  ";
}
$january = mysql_query($query_january, $library) or die(mysql_error());
$row_january = mysql_fetch_assoc($january);
$totalRows_january = mysql_num_rows($january);


?>
<!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">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<body>
<p><? echo $_POST["radio"]; ?><br />
  <? echo $_POST["radio2"]; ?><br />
  <? echo $_POST["month"]; ?><br />
  <? echo $_POST["year"]; ?><br />
<? echo $_POST["year2"]; ?></p>
<p>&nbsp;</p>
<p align="center"><span class="style15">สถิติหนังสือถูกยืมสูงสุด 15 รายการ</span></p>
<p align="center" class="style15">เดือน <? echo $_GET['months'] ?> ปี <? echo $_GET['years'] ?></p>
<p><br />
</p>
<table width="60%" border="0" align="center">
  <tr>
    <td width="33%"><div align="center" class="style14">ชื่อหนังสือ</div></td>
    <td width="34%"><div align="center" class="style14">เลขISBN</div></td>
    <td width="33%"><div align="center" class="style14">วันที่</div></td>
  </tr>
  <?php do { ?>
  <tr>
    <td class="style14"><div align="left"><?php echo $row_january['book_name']; ?></div></td>
    <td class="style14"><div align="center"><?php echo $row_january['book_isbn']; ?></div></td>
    <td class="style14"><div align="center"><?php echo $row_january['day_show']; ?></div></td>
  </tr>
  <?php } while ($row_january = mysql_fetch_assoc($january)); ?>
</table>
<p>&nbsp; </p>
</body>
</html>
<?php
mysql_free_result($january);
?>




จากการทำการทดสอบผลออกมาเป็น

กรณีที่เลือก เดือน และ ปี
23062012-1


กรณีที่เลือก ปี
23062012-2



ในสคริปผมใช้Code (PHP)
<?php
mysql_select_db($database_library, $library);
if($_POST["r1"] == "r1")
{
$query_january = "SELECT book_name,book_isbn,day_show , count(borrow_isbn) as maxid FROM member_borrow   INNER JOIN book ON member_borrow.borrow_isbn = book.book_isbn WHERE member_borrow.day_show like '%-$m-$y' GROUP BY borrow_isbn ORDER BY maxid desc limit 15  ";
}
else
{
$query_january = "SELECT book_name,book_isbn,day_show , count(borrow_isbn) as maxid FROM member_borrow   INNER JOIN book ON member_borrow.borrow_isbn = book.book_isbn WHERE member_borrow.day_show like '%-%-$y2' GROUP BY borrow_isbn ORDER BY maxid desc limit 15  ";
}
$january = mysql_query($query_january, $library) or die(mysql_error());
$row_january = mysql_fetch_assoc($january);
$totalRows_january = mysql_num_rows($january);


?>


คือมันทำเงื่อนไขแรกไม่ไ้ด้
แต่ถ้าแยกเดี่ยวๆ มาแล้วมันสามารถทำงานตามเงื่อไข WHERE ได้ ปกติครับ

ไม่ทราบว่ามันมีปัญหาตรงไหนหรอครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-06-23 03:06:18 By : numprick View : 1705 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ผมดูแล้วยังไม่เข้าใจครับ ปกติถ้าค้นหาหลายเงื่อนไขผมจะใช้ตัวนี้ครับ

Code (PHP)
<?
	$strSQL = "SELECT * FROM product WHERE 1 ";

	if($_POST["ddlBrand"] != "")
	{
		$strSQL .= " AND brand = '".$_POST["ddlBrand"]."' ";
	}

	if($_POST["ddlType"] != "")
	{
		$strSQL .= " AND type = '".$_POST["ddlType"]."' ";
	}

	if($_POST["ddlSize"] != "")
	{
		$strSQL .= " AND size = '".$_POST["ddlSize"]."' ";
	}
?>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-23 07:52:07 By : mr.win
 


 

No. 2

Guest


เอาตามความเข้าใจที่ผมเห็นนะ คุณมีตัวเลือก 2 แถว
แถว 1 มีให้เลือก Radio , เดือก , ปี
แถว 2 มีให้เลือก Radio , ปี

มันก็จะเป็นว่า แถวแรกมีตัวแปร 3 ตัวที่จะส่งไป ส่วนแถวสองก็จะมีแค่ 2 ที่จะส่งไป ส่วนชื่อตัวแปรอาจจะเป็นแบบนี้

Code (PHP)
<table>
<tr>
<td>แถวแรก</td>
<td><input type="radio" name="Radi1"> <input type="textbox" name="Year1"> <input type="textbox" name="Month"></td>
</tr>
<tr>
<td>แถวสอง</td>
<td><input type="radio" name="Radi2"> <input type="textbox" name="Year2"></td>
</tr>
</table>


ส่วนวิธีรับไป Query ก็ตาม Mr.Win เลยครับ
Code (PHP)
<?
	$strSQL = "SELECT * FROM product WHERE 1 ";

	if($_POST["Radi1"] != "" and $_POST["Year1"] != "" and $_POST["Month"] != "")
	{
		     $strSQL .= " AND ตรงนี้ก็ระบุไปว่าเอาฟิลด์ไรบ้าง ";
	}

	if($_POST["Radi2"] != "" and $_POST["Year2"] != "")
	{
      	$strSQL .= " AND ตรงนี้ก็ระบุไปว่าเอาฟิลด์ไรบ้าง ";
	}
?>


แต่ผมขอแนะนำนิดหน่อยนะครับ
ทำไมต้องทำ Radio สองอันด้วยครับ คือเท่าที่เห็นนะทำ Radio อันเดียวก็ได้ครับ แล้วในหน้ารับก็เช็คเอาว่ามีตัวแปรไหนเป็นค่าว่าง หรือไม่ว่างเอาน่ะ
แบบนี้น่าจะดีกว่านะ ความเห็นส่วนตัวนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-23 09:08:20 By : บังเอิญผ่านมาเห็น
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหาในการใช้ if...else...ในการ query ข้อมูลจากฐานข้อมูลครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่