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 > รบกวนสอบถามวิธีการ Search โดยใช้เงื่อนไข 2 เงื่อนไข



 

รบกวนสอบถามวิธีการ Search โดยใช้เงื่อนไข 2 เงื่อนไข

 



Topic : 113893



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



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




รบกวนสอบถามวิธีการ Search โดยใช้ 2 เงื่อนไข โดย
1. ให้ผู้ใช้เลือก Field ที่ต้องการก่อน
2. ให้ผู้ใช้ เลือก ช่วงเวลา

ตามตัวอย่างในรูปเลยคะ
ตัวอย่าง

ไม่ทราบว่าต้องใช้โค้ดแบบไหนคะ พอดีว่าไปยำๆ โค้ดมาจากหลายๆ อันปรากฎว่างงเอง แล้วก็ search ไม่ได้ด้วย รบกวนผู้รู้แนะนำด้วยนะคะ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-01-20 13:46:29 By : nlilng View : 2537 Reply : 30
 

 

No. 1



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



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


WHERE ฟิลเก็บlistbox = ค่าของlistbox AND ฟิลล์วันที่ BETWEEN วันเริ่ม AND วันจบ ;






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 13:58:14 By : meannerss
 


 

No. 2



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



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


ขอดู code หน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 14:03:51 By : yamcrocodile
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : meannerss เมื่อวันที่ 2015-01-20 13:58:14
รายละเอียดของการตอบ ::
...คือว่าค่าของฟิลด์เราต้องรอให้ผู้ใช้เลือกก่อนอ่ะคะ ว่าผู้ใช้จะเลือกค้นหาโดยจะค้นหาจากฟิลด์ไหน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 14:10:20 By : nlilng
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : yamcrocodile เมื่อวันที่ 2015-01-20 14:03:51
รายละเอียดของการตอบ ::
. คืออันนี้ก็มั่วๆ เอาเองนะคะ จับตัวอย่างโน่นนี้มารวมๆ กันแบบคนไม่ค่อยมีความรู้เท่าไหร่....รบกวนด้วยคะ

Code (PHP)
<body>
<form name="frmSearch" method="POST" action="">
  <table width="75%" border="1" align="center">
    <tr>
      <th>Select 
        <select name="ddlSelect" id="ddlSelect">
          <option value="null">- Select -</option>
          <option value="cust_duedate" <? if($_POST["ddlSelect"]=="cust_duedate"){echo"selected";}?> >Customer Due Date</option>
          <option value="placement_due" <? if($_POST["ddlSelect"]=="placement_due"){echo"selected";}?> >Placement Due Date</option>
          <option value="lasercut_due" <? if($_POST["ddlSelect"]=="lasercut_due"){echo"selected";}?> >Laser Cut Due Date</option>
        </select>
        Between
        <input name="datestart" type="text" id="datestart" value="<?=$_POST["datestart"];?>"> 
        To 
        <input name="dateend" type="text" id="dateend" value="<?=$_POST["dateend"];?>"><strong></strong>
      <input type="submit" value="Search"></th>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>
<?
	

	$objConnect = mysql_connect("localhost","root","12345678") or die("Error Connect to Database");
	$objDB = mysql_select_db("whitty99_masterplan");

	$strSQL = "SELECT * FROM masterplan WHERE 1  ";
	if($_POST["ddlSelect"]!= "" && $_POST["datestart"] && $_POST["dateend"]!="")
	{
	  $strSQL .= " AND (".$_POST["ddlSelect"]." BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." '   ) ORDER BY plan_id ASC ";
	}	
	
	$objQuery = mysql_query($strSQL);
	$Num_Rows = mysql_num_rows($objQuery);	
	$Per_Page = 10;   // Per Page

	$Page = $_GET["Page"];
	if(!$_GET["Page"])
	{
		$Page=1;
	}

	$Prev_Page = $Page-1;
	$Next_Page = $Page+1;

	$Page_Start = (($Per_Page*$Page)-$Per_Page);
	if($Num_Rows<=$Per_Page)
	{
		$Num_Pages =1;
	}
	else if(($Num_Rows % $Per_Page)==0)
	{
		$Num_Pages =($Num_Rows/$Per_Page) ;
	}
	else
	{
		$Num_Pages =($Num_Rows/$Per_Page)+1;
		$Num_Pages = (int)$Num_Pages;
	}


	$strSQL .= " ORDER BY plan_id ASC LIMIT $Page_Start , $Per_Page";
	$objQuery  = mysql_query($strSQL) 

	?>
	<table width="95%" border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" align="center" style="border-collapse: collapse">
    <tr bgcolor="#79C4CA" height="20">
    <td width="3%"  align="center">
    <font color="#ffffff"><b>No</b></font></td>
    <td width="12%"  align="center">
    <font color="#ffffff"><b>JOG No.</b></font></td>
    <td width="13%"  align="center"><font color="#ffffff"><b>
    Order Name</b></font></td>
    <td width="11%" align="center"><font color="#ffffff"><b>
    Quantity</b></font></td>
    <td width="17%" " align="center"><font color="#ffffff"><b>Customer Due Date</b></font></td>
     <td width="17%" align="center"><font color="#ffffff"><b>
    Placement Due Date</b></font></td>
    <td width="17%" align="center"><font color="#ffffff"><b>
    Laser Cut Due Date</b></font></td>
    <td width="17%"  align="center"><font color="#ffffff"><b>
    Sew In Projection</b></font></td>
  </tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
  <tr>
    <td><div align="center"><?php echo $objResult["plan_id"];?></div></td>
    <td><?php echo $objResult["jog_no"];?></td>
    <td><?php echo $objResult["order_name"];?></td>
    <td><div align="center"><?php echo $objResult["quantity"];?></div></td>
    <td align="center"><?php echo $objResult["cust_due"];?></td>
    <td align="center"><?php echo $objResult["placement_due"];?></td>
    <td align="center"><?php echo $objResult["lasercut_due"];?></td>
    <td align="center"><?php echo $objResult["sew_in"];?></td>
  </tr>
<?php
}
?>
</table>
    <br>
    	Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
	<?
	if($Prev_Page)
	{
		echo " <a href='?name=admin&file=test3&Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]'><< Back</a> ";
	}

	for($i=1; $i<=$Num_Pages; $i++){
		if($i != $Page)
		{
			echo "[ <a href='?name=admin&file=test3&Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]";
		}
		else
		{
			echo "<b> $i </b>";
		}
	}
	if($Page!=$Num_Pages)
	{
		echo " <a href ='?name=admin&file=test3&Page=$Next_Page&txtKeyword=$_GET[txtKeyword]'>Next>></a> ";
	}
	//}
	//mysql_close($objConnect);
?>
</body>





ประวัติการแก้ไข
2015-01-20 14:16:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 14:14:28 By : nlilng
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ก็น่าจะถูกแล้วนี่ครับ มีปัญหาอยางไรเหรอครับ
ปล. ดู อัลกอลิธึม โดยรวม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:00:51 By : Chaidhanan
 


 

No. 6



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



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


<form name="frmSearch" method="post" action="">

ลองใหม่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:02:46 By : yamcrocodile
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-20 15:00:51
รายละเอียดของการตอบ ::
พอเลือกฟิลด์ที่ต้องการ กรอกวันที่เริ่มต้นและสิ้นสุด แล้วกดปุ่ม ค้นหา มันขึ้นว่า

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY plan_id ASC LIMIT 0 , 10' at line 1


อ่ะคะ

ส่วนตัวคิดว่าน่าจะเป็นจากตรงนี้คะ...แต่ไม่รู้จะแก้ยังไง

$strSQL = "SELECT * FROM masterplan WHERE 1  ";
	if($_POST["ddlSelect"]!= "" AND $_POST["datestart"] && $_POST["dateend"]!="")
	{
	  $strSQL .= " AND (".$_POST["ddlSelect"]." BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." '   ) ORDER BY plan_id ASC ";
	}	





ประวัติการแก้ไข
2015-01-20 15:30:42
2015-01-20 15:31:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:28:32 By : nlilng
 


 

No. 8



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : yamcrocodile เมื่อวันที่ 2015-01-20 15:02:46
รายละเอียดของการตอบ ::
. ขอบคุณคะ....แต่มันยังไม่ได้เหมือนเดิมเลยคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:29:22 By : nlilng
 


 

No. 9



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



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


ผิดๆแก้ใหม่ครับ

Code
$strSQL .= " AND (".$_POST["ddlSelect"]." BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." ' ) ORDER BY plan_id ASC ";

ตรง $_POST["ddlSelect"] ไม่ไม่ได้เรียกตัวแปรนะครับ มันต้องเรียกชื่อฟิล


Code (PHP)
$strSQL .= " AND ชื่อฟิลที่เก็บวันที่  BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." '   ) ORDER BY plan_id ASC ";



ประวัติการแก้ไข
2015-01-20 15:45:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:43:35 By : meannerss
 


 

No. 10



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ที่คำสั่งนี้ $objQuery = mysql_query($strSQL) ;
ให้แก้เป็น
$objQuery = mysql_query($strSQL) or die( $strSQL . "\n<br>" . $mysql_error());
ลองอีกทีครับ เอาตรงนี้ไปใส่ เพื่อเช็ค statement ด้วยตาครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:51:33 By : Chaidhanan
 


 

No. 11



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : meannerss เมื่อวันที่ 2015-01-20 15:43:35
รายละเอียดของการตอบ ::
$_POST["ddlSelect"] เขาเก็บ ชื่อ ฟีลด์ ที่เก็บวันที่แล้ว ชื่อฟีล์ ส่งมาจาก <select> ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:53:05 By : Chaidhanan
 


 

No. 12



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : meannerss เมื่อวันที่ 2015-01-20 15:43:35
รายละเอียดของการตอบ ::
..คือผู้ใช้เป็นคนเลือกเองคะ...ว่าอยากจะค้นหาจากฟิลด์ไหน โดยมีให้ให้เลือก 3 ฟิลด์คะ คืออันนี้

Code (PHP)
 <select name="ddlSelect" id="ddlSelect">
          <option value="null">- Select -</option>
          <option value="cust_duedate" <? if($_POST["ddlSelect"]=="cust_duedate"){echo"selected";}?> >Customer Due Date</option>
          <option value="placement_due" <? if($_POST["ddlSelect"]=="placement_due"){echo"selected";}?> >Placement Due Date</option>
          <option value="lasercut_due" <? if($_POST["ddlSelect"]=="lasercut_due"){echo"selected";}?> >Laser Cut Due Date</option>
        </select>

เลยไม่รู้ว่าต้องใส่โค้ดตรงนี้ยังไงคะ
Code (PHP)
$strSQL .= " AND ชื่อฟิลที่เก็บวันที่  BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." '   ) ORDER BY plan_id ASC ";


รบกวนหน่อยนะคะ.....ขอบคุณมากคะ



ประวัติการแก้ไข
2015-01-20 15:54:33
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:53:38 By : nlilng
 


 

No. 13



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



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


แปปครับ งงอยู่


ประวัติการแก้ไข
2015-01-20 15:56:47
2015-01-20 15:58:05
2015-01-20 15:59:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:54:22 By : meannerss
 


 

No. 14



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



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-20 15:51:33
รายละเอียดของการตอบ ::
.ขอบคุณคะลองไปใส่แล้วคะ มันฟ้อง Fatal error: Function name must be a string ตรงบรรทัดนี้คะ

Code (PHP)
$strSQL .= " ORDER BY plan_id ASC LIMIT $Page_Start , $Per_Page";


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:03:36 By : nlilng
 


 

No. 15



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



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


ตอบความคิดเห็นที่ : 13 เขียนโดย : meannerss เมื่อวันที่ 2015-01-20 15:54:22
รายละเอียดของการตอบ ::
..เง้อ...งง !!! เหมือนกันคะ...เริ่มไม่แน่ใจว่าตัวเองอธิบายถูกรึเปล่า ขอบคุณมากคะสำหรับความช่วยเหลือ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:05:07 By : nlilng
 


 

No. 16



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



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


เอาบรรทัดที่ 27-31 ออก ใส่นี่ลงไป



Code (PHP)
//ประกาศตัวแปรซะ กินทรัพยากรช่างหัวมัน ตาไม่ลายพอ 555
$catalog = $_POST["ddlSelect"];
$Date_start=$_POST["datestart"];
$Date_end=$_POST["dateend"];
//ตรวจหาการกรอกข้อมูลการเลือกหมวด
// อย่าลืมว่าคุณใช้  <option value="null">- Select -</option>  มันเป็นคำว่างnull มิไช่ค่าว่าง ""
if($catalog == "null")
{
echo "คุุณยังไม่เลือกรูปแบบ ใส่โค้ดให้เด้งออกไปใส่มาใหม่ซะ";
}else{
// หากเลือกแล้ว หาการกรอกวนที่ ถ้าไม่มีก็สั่งเอามาหมดแบบไม่กำหนด
// หากเลือกอันใดอันนึง เช่นเลือกแต่ตัวเริ่มไม่เลือกตัวจบ ก็ถือว่ากรอกไม่ครบคิวรี่แบบทั้งหมดเหมือนเดิม
if($Date_start=="" || $Date_end=="")
{
 		$AAA = "";  }else{
		$AAA = "AND ชื่อฟิลวันที่ BETWEEN  '$Date_start' AND '$Date_end' "; 
}

//คำสั่ง sql 
$strSQL = "SELECT * FROM masterplan WHERE  ชื่อฟิลหมวดหมู่ = '$catalog'  $AAA    ORDER BY plan_id ASC";
}


ปล.
1.อย่าลืมปรับคำว่า ชื่อฟิลวันที่ ให้เป็น ชื่อของฟิลที่เก็บวันที่ใน db
1.อย่าลืมปรับคำว่า ชื่อฟิลหมวดหมู่ ให้เป็น ชื่อของฟิลที่เก็บค่าของหมวดหมู่ใน db


ประวัติการแก้ไข
2015-01-20 16:17:39
2015-01-20 16:25:42
2015-01-20 16:26:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:17:20 By : meannerss
 


 

No. 17



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


เอามาทั้ง ไฟล์ อีกที่ครับ ที่แก้ไขแล้ว แล้ว backup โค๊ดเ่ก่าไว้บ้างหรือเปล่าครับ 55555 เดี๋ยวแก้จนเละ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:19:27 By : Chaidhanan
 


 

No. 18



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



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


ตอบความคิดเห็นที่ : 16 เขียนโดย : meannerss เมื่อวันที่ 2015-01-20 16:17:20
รายละเอียดของการตอบ ::
ถามนิดนึงคะ ว่า ในเมื่อเราให้ผู้ใช้เลือกฟิลด์ที่อยากรู้เอง แล้วเวลาจะ SELECT * FROM masterplan WHERE ....... เนี่ย เราจะเป็น fix ค่าลงไปไม่ได้ใช่มั้ยคะ คือเราต้องสร้างตัวแปรขึ้นมาใหม่อีกรึเปล่าคะ




ประวัติการแก้ไข
2015-01-20 16:34:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:31:21 By : nlilng
 


 

No. 19



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



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


ตอบความคิดเห็นที่ : 18 เขียนโดย : nlilng เมื่อวันที่ 2015-01-20 16:31:21
รายละเอียดของการตอบ ::
โอ้ยก็แก้ก่อนสิคร้าบท่านผมไม่รู้ว่าฟิลของคุณในดาต้าเบสมันชื่ออะไร กลับขึ้นไปดู ปล.ในคอมเม้นที่ 16 คร้าบ แล้วแก้อีกที


** ถ้าอยากให้เขากรอกสิ่งที่อยากรู้เอง ตัว input ต้องไม่ไช่ list box อย่างเดียวนะครับ ต้องมี text filed เข้าร่วมด้วย
***คือมันยาวอะทำแบบข้างบนให้ออกก่อนค่อยมาคุยกันอีกทีเนอะครับ อย่าอ่านเลย ผมเตือนแล้วนะ 555+****
1. select เพิ่มออฟชั่นคำว่าอื่นๆ เมื่อเลือกออฟชั่นนี้ให้ javascript โชว์กล่อง textfiled ที่จะให้เขากรอก
2. ต้องมีการ if เมื่อค่า value ของselect = อื่นๆ ให้ค่าของ $cattalog = ค่าใน textfiled แทน
3. เปลี่ยนโอปอเรเตอร์จาก = เป็น %LIKE% เพราะผู้ใช้พิมเอง รับรับประกันอักขระไม่ได้ว่ามันจะร้อย%
4. อื่นๆให้คิดมากมาย ในหลายๆแง่มุมมาก อย่าพึ่งทำเลยครับ ทำแบบข้างบนให้มันออกก่อนเนอะค่อยต่อยอดไป
5. ส่วนตัวคิดว่าค่าตรงนี้อย่าให้เขากรอกเองเลยครับพวกหมวดหมุ่เนี่ย เพราะถ้าเกิดเขากรอกแล้วมันไม่มีจะยุ่งตีกันไปหมด


ประวัติการแก้ไข
2015-01-20 16:42:07
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:34:39 By : meannerss
 


 

No. 20



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



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


ตอบความคิดเห็นที่ : 17 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-20 16:19:27
รายละเอียดของการตอบ ::
55+ ขอบคุณคะที่เป็นห่วง ไม่ได้ save ทับคะ แต่ตอนแรกก็เกือบแล้ว

Code (PHP)
<form name="frmSearch" method="POST" action="">

  <table width="75%" border="1" align="center">
    <tr>
      <th>Select 
        <select name="ddlSelect" id="ddlSelect">
          <option value="null">- Select -</option>
          <option value="cust_duedate" <? if($_POST["ddlSelect"]=="cust_duedate"){echo"selected";}?> >Customer Due Date</option>
          <option value="placement_due" <? if($_POST["ddlSelect"]=="placement_due"){echo"selected";}?> >Placement Due Date</option>
          <option value="lasercut_due" <? if($_POST["ddlSelect"]=="lasercut_due"){echo"selected";}?> >Laser Cut Due Date</option>
        </select>
        Between
        <input name="datestart" type="text" id="datestart" value="<?=$_POST["datestart"];?>"> 
        To 
        <input name="dateend" type="text" id="dateend" value="<?=$_POST["dateend"];?>"><strong></strong>
      <input type="submit" value="Search"></th>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>
<?
	

	$objConnect = mysql_connect("localhost","root","12345678") or die("Error Connect to Database");
	$objDB = mysql_select_db("whitty99_masterplan");
	
	$strSQL = "SELECT * FROM masterplan WHERE 1  ";
	if($_POST["ddlSelect"]!= "" && $_POST["datestart"] && $_POST["dateend"]!="")
	{
	  $strSQL .= " AND (".$_POST["ddlSelect"]." BETWEEN '".$_POST["datestart"]."' AND '".$_POST["dateend"]." '   ) ORDER BY plan_id ASC ";
	}	
	
	$objQuery = mysql_query($strSQL);
	$Num_Rows = mysql_num_rows($objQuery);	
	$Per_Page = 10;   // Per Page

	$Page = $_GET["Page"];
	if(!$_GET["Page"])
	{
		$Page=1;
	}

	$Prev_Page = $Page-1;
	$Next_Page = $Page+1;

	$Page_Start = (($Per_Page*$Page)-$Per_Page);
	if($Num_Rows<=$Per_Page)
	{
		$Num_Pages =1;
	}
	else if(($Num_Rows % $Per_Page)==0)
	{
		$Num_Pages =($Num_Rows/$Per_Page) ;
	}
	else
	{
		$Num_Pages =($Num_Rows/$Per_Page)+1;
		$Num_Pages = (int)$Num_Pages;
	}


	$strSQL .= " ORDER BY plan_id ASC LIMIT $Page_Start , $Per_Page";	
	$objQuery = mysql_query($strSQL) or die( $strSQL . "\n<br>" . $mysql_error());

	?>
	<table width="95%" border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" align="center" style="border-collapse: collapse">
    <tr bgcolor="#79C4CA" height="20">
    <td width="3%"  align="center">
    <font color="#ffffff"><b>No</b></font></td>
    <td width="12%"  align="center">
    <font color="#ffffff"><b>JOG No.</b></font></td>
    <td width="13%"  align="center"><font color="#ffffff"><b>
    Order Name</b></font></td>
    <td width="11%" align="center"><font color="#ffffff"><b>
    Quantity</b></font></td>
    <td width="17%" " align="center"><font color="#ffffff"><b>Customer Due Date</b></font></td>
     <td width="17%" align="center"><font color="#ffffff"><b>
    Placement Due Date</b></font></td>
    <td width="17%" align="center"><font color="#ffffff"><b>
    Laser Cut Due Date</b></font></td>
   
  </tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
  <tr>
    <td><div align="center"><?php echo $objResult["plan_id"];?></div></td>
    <td><?php echo $objResult["jog_no"];?></td>
    <td><?php echo $objResult["order_name"];?></td>
    <td><div align="center"><?php echo $objResult["quantity"];?></div></td>
    <td align="center"><?php echo $objResult["cust_duedate"];?></td>
    <td align="center"><?php echo $objResult["placement_due"];?></td>
    <td align="center"><?php echo $objResult["lasercut_due"];?></td>

  </tr>
<?php
}
?>
</table>
    <br>
    	Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
	<?
	if($Prev_Page)
	{
		echo " <a href='?name=admin&file=test3&Page=$Prev_Page&txtKeyword=$_GET[txtKeyword]'><< Back</a> ";
	}

	for($i=1; $i<=$Num_Pages; $i++){
		if($i != $Page)
		{
			echo "[ <a href='?name=admin&file=test3&Page=$i&txtKeyword=$_GET[txtKeyword]'>$i</a> ]";
		}
		else
		{
			echo "<b> $i </b>";
		}
	}
	if($Page!=$Num_Pages)
	{
		echo " <a href ='?name=admin&file=test3&Page=$Next_Page&txtKeyword=$_GET[txtKeyword]'>Next>></a> ";
	}
	
?>




ประวัติการแก้ไข
2015-01-22 13:59:53
2015-01-23 10:07:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:37:55 By : nlilng
 


 

No. 21



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ผมโมฯให้ใหม่ แต่ยังไม่ได้ลองนะครับ คงไม่มีการ error จากการ ผิดไวยกรณ์
แต่ ส่วนการคิวรี่ ไม่แน่ใจ เพราะไม่มี database ให้ทดสอบ

หลักการเขียนโปรแกรมของผม พยายามแยกส่วน PHP กับ html ออกจากกันให้มากที่สุด
จะเริ่มต้นด้วยการ generate ค่าต่างๆ ไว้ก่อน อยู่ในส่วนแรก แล้วค่อยนำไปใช้ ในส่วน HTML ส่วนหลัง ให้น้อยที่สุด
และโค๊ดบางตัว ผมย่อให้เหลือน้อยลง แต่ประสิทธิภาพ ไม่ต่างกัน ทำให้ดูง่ายขึ้น (ถ้าเข้าใจ 5555)
ก็ลองศึกษาดูนะครับ คงได้ประโยชน์ไม่มากก็น้อย

สิ่งสำคัญ พยายามอ่านให้มาก( ของชาวบ้าน ) อ่านให้เข้าใจ แล้วมาประยุกต์เขียนเอง
อย่าลอกมาใช้ โดยไม่ศึกษาครับ

Code (PHP)
<?php
$ddl=isset($_POST['ddlSelect'])? $_POST['ddlSelect'] : '';
$dte_st=isset($_POST['datestart'])? $_POST['datestart'] : '';
$dte_en=isset($_POST['dateend'])? $_POST['dateend'] : '';
////////////////////////////////////////////////////////////////////////////////
$objConnect = mysql_connect("localhost","whitty99","GVZ1o5o1Ym4H") or die("Error Connect to Database");
$objDB = mysql_select_db("whitty99_masterplan");
////////////////////////////////////////////////////////////////////////////////
$from = ' from masterplan ';
$where = ($dte_st && $dte_en) ? " where  $ddl BETWEEN '$dte_st' AND '$dte_en' " : '';
$orderby=' ORDER BY plan_id ASC ';
////////////////////////////////////////////////////////////////////////////////
$obj = mysql_query( $sql = "select count($ddl) ". $form . $where ) or die( $sql . "<br>\n" . mysql_error());
$rs=mysql_fetch_row($obj);
$Num_Rows = $rs[0];	
$Per_Page = 10;   // Per Page
$Page = isset($_GET["Page"])? $_GET["Page"] : 1;
////////////////////////////////////////////////////////////////////////////////
$Page_ST = $Page-3; if( $Page_ST<1) $Page_ST = 1;
$Page_EN = $Page+3; if( $Page_EN>$Num_Pages) $Page_EN = $Num_Pages;

$Row_Start = $Per_Page * $Page - $Per_Page;
$Num_Pages = ceil($Num_Rows / $Per_Page);
$link="?name=admin&file=test3&txtKeyword=$_GET[txtKeyword]&Page=";
$limit = "  LIMIT $Row_Start , $Per_Page";	
$obj = mysql_query( $sql = 'select * ' . $from . $where . $orderby . $limit ) or die( $sql . "\n<br>" . $mysql_error());
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
///// จุดแยกส่วน PHP กับ HTML 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<form name="frmSearch" method="POST" action="">
	<table width="75%" border="1" align="center">
	<tr>
		<th>Select 
		<select name="ddlSelect" id="ddlSelect">
		<option value="null">- Select -</option>
		<option value="cust_duedate" <?=($ddl=="cust_duedate" ? 'selected' : '')?> >Customer Due Date</option>
		<option value="placement_due" <?=($ddl=='placement_due' ? 'selected' : '')?> >Placement Due Date</option>
		<option value="lasercut_due" <?=($ddl=='lasercut_due' ? 'selected' : '')?> >Laser Cut Due Date</option>
		</select>&nbsp;&nbsp;
		Between <input name="datestart" type="text" id="datestart" value="<?=$dte_st?>">&nbsp;&nbsp;
		To <input name="dateend" type="text" id="dateend" value="<?=$dte_en?>">&nbsp;&nbsp;
		<input type="submit" value="Search"></th>
	</tr>
	</table>
	<p>&nbsp;</p>
</form>
<table width="95%" border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" align="center" style="border-collapse: collapse">
<tr bgcolor="#79C4CA" height="20">
	<td width="3%"  align="center">
	<font color="#ffffff"><b>No</b></font></td>
	<td width="12%"  align="center" ><font color="#ffffff"><b>JOG No.</b></font></td>
	<td width="13%"  align="center"><font color="#ffffff"><b>Order Name</b></font></td>
	<td width="11%" align="center"><font color="#ffffff"><b>Quantity</b></font></td>
	<td width="17%" align="center" ><font color="#ffffff" ><b>Customer Due Date</b></font></td>
	 <td width="17%" align="center"><font color="#ffffff"><b>Placement Due Date</b></font></td>
	<td width="17%" align="center"><font color="#ffffff"><b>Laser Cut Due Date</b></font></td>
</tr>
<?php while($row = mysql_fetch_assoc($obj)): ?>
<tr>
	<td><div align="center"><?=$row["plan_id"]?></div></td>
	<td><?=$row["jog_no"]?></td>
	<td><?=$row["order_name"]?></td>
	<td align="center"><?=$row["quantity"]?></td>
	<td align="center"><?=$row["cust_due"]?></td>
	<td align="center"><?=$row["placement_due"]?></td>
	<td align="center"><?=$row["lasercut_due"]?></td>
</tr>
<?php endwhile; ?>
</table>
<br>Total <?=$Num_Rows;?> Record : <?=$Num_Pages;?> Page :
<?php 
if($Page_ST>1){ ?><a href='<?=$link?>1'>&lt;&lt;&nbsp;First</a><?php } 
for($i=$Page_ST; $i<=$Page_EN; $i++){
	if($i != $Page){ ?>[&nbsp;<a href='<?=($link . $i)?>' ><?=$i?></a><?php }else{ ?><b><?=$i?></b><?php }
}
if($Page_EN<$Num_Pages){ ?><a href ='<?=($link . $Num_Pages)?>' >Last&nbsp;&gt;&gt;</a><? }
?>
</body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 08:57:21 By : Chaidhanan
 


 

No. 22



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



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


ตอบความคิดเห็นที่ : 21 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-21 08:57:21
รายละเอียดของการตอบ ::
.ขอบคุณมากมายนะคะสำหรับความช่วยเหลือและคำแนะนำ พอลองเอาไปใช้แล้วมันขึ้น

select count()

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1


อ่ะคะ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 11:41:48 By : nlilng
 


 

No. 23



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



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

ไล่ echo $sql แต่ละตัว แล้วลองไปรันใน phpMyAdmin ดูนะครับ ถ้ารันได้แสดงว่าโค๊ดผิด แต่ถ้ารันแล้ว error ก็แสดงว่า SQL ผิด ค่อยๆแก้กันไป แต่ดูแล้ว select count() มันว่างเปล่า ก็แสดงว่า form ส่งค่ามาไม่ถูกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-21 12:54:31 By : {Cyberman}
 


 

No. 24



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



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


ขอบคุณทุกคำแนะนำ และทุกๆ ความช่วยเหลือนะคะ...
ตอนนี้ถอดใจมาใช้เงื่อนไขแค่ระยะเวลาอย่างเดียวแล้วคะ
ขอบคุณอีกครั้งนะคะ...ไว้จะมารบกวนใหม่นะคะ ^_^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-22 13:58:20 By : nlilng
 


 

No. 25



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 24 เขียนโดย : nlilng เมื่อวันที่ 2015-01-22 13:58:20
รายละเอียดของการตอบ ::
อย่าเพิ่งถอดใจครับ ศึกษาไปเรื่อยๆ ครับ เดี๋ยวก็เก่งเอง


$obj = mysql_query( $sql = "select count($ddl) ". $form . $where ) or die( $sql . "<br>\n" . mysql_error());
แก้ เป็น
$obj = mysql_query( $sql = "select count(*) ". $form . $where ) or die( $sql . "<br>\n" . mysql_error());
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-22 14:39:33 By : Chaidhanan
 


 

No. 26



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



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


ตอบความคิดเห็นที่ : 25 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-22 14:39:33
รายละเอียดของการตอบ ::
ขอบคุณมากนะคะ จะกลับมาพยายามอีกครั้งคะ
ลองเปลี่ยนแล้วนะคะแต่มันก็ยังไม่ได้อยู่ดี
พอเลือกคอลัมน์ที่อยากค้นหา แล้วระบุช่วงของวันที่ลงไป กดปุ่มค้นหา มันขึ้นแบบนี้ค่ะ

[sql]select count(*) where 'placement_due' BETWEEN '2015-02-01' AND '2015-02-28'[/sq]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where 'placement_due' BETWEEN '2015-02-01' AND '2015-02-28'' at line 1


ไม่ทราบว่าต้องเช็คจากตรงไหนคะ ลองเช็ค syntax เบื้องต้นดูแล้วแต่ก็ไม่เจอ คือมันไม่มีค่าอะไรหรือเปล่าคะ

table

อันนี้เป็นตารางที่ให้สำหรับหน้านี้คะ



ประวัติการแก้ไข
2015-01-23 10:06:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-23 10:04:35 By : nlilng
 


 

No. 27



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



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


ตอบความคิดเห็นที่ : 26 เขียนโดย : nlilng เมื่อวันที่ 2015-01-23 10:04:35
รายละเอียดของการตอบ ::
'placement_due' ไม่ต้องคร่อมครับ - สิ่งที่เป็นศัพท์SQL และ ชื่อฟิล ไม่ต้องคร่อมใดๆครับ

(ถ้าจะคร่อมต้องคร่อมก็ได้ใช้ในกรณีที่ชื่อฟิลล์ไปทับกับคำสงวนคร่อมด้วย ซิงเกิ้ลโขดที่มันเอียงๆผมก็ไม่รุ้มันเรียกอะไร แต่ ' ไม่ไช่ต้วนี้นะ เป็นอีกตัวที่มันเอียงๆหน่อยมันอยู่ตรงปุ่มตัวหนอนที่ใช้เปลี่ยนภาษานั้นเหละครับ )

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-23 10:59:48 By : meannerss
 


 

No. 28



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



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


ตอบความคิดเห็นที่ : 27 เขียนโดย : meannerss เมื่อวันที่ 2015-01-23 10:59:48
รายละเอียดของการตอบ ::
. ก็ยังไม่ได้คะ

select count(*) where placement_due BETWEEN '2015-02-05' AND '2015-02-28' 



You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where placement_due BETWEEN '2015-02-05' AND '2015-02-28'' at line 1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-23 11:57:32 By : nlilng
 


 

No. 29



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ต้องขอโทษด้วยครับ โค๊ดผมผิดอ่ะครับ สะกดคำผิด ก็อย่างที่บอกไม่ได้ทดสอบ เพราะ ไม่ได้สร้าง ตารางมาทดสอบอะครับ
ชื่อตารางมันหายไปอะครับ
select count(*) xxxxxxx where 'placement_due' BETWEEN '2015-02-01' AND '2015-02-28'
ตรง xxxxxxx เป็นส่วนของชื่อตาราง $from แต่ผมพิมพ์ เป็น $form

$obj = mysql_query( $sql = "select count(*) ". $form . $where ) or die( $sql . "<br>\n" . mysql_error());
แก้เป็น
$obj = mysql_query( $sql = "select count(*) ". $from . $where ) or die( $sql . "<br>\n" . mysql_error());
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-23 11:59:10 By : Chaidhanan
 


 

No. 30



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



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


ตอบความคิดเห็นที่ : 29 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-23 11:59:10
รายละเอียดของการตอบ ::
ได้แล้วคะ....ขอบคุณมากเลยนะคะ ดีใจจนนำ้ตาจะไหล หายเครียดเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-23 13:08:10 By : nlilng
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนสอบถามวิธีการ Search โดยใช้เงื่อนไข 2 เงื่อนไข
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่