|
|
|
ผมต้องการ select ก-ฮ โดยเรียงจาก ก ไป ฮ ต้อง select อย่างไรคับ |
|
|
|
|
|
|
|
order by ผม select เป็นคับ แต่ ก-ฮ มันจะ select ยังไง
|
|
|
|
|
Date :
2013-08-29 22:04:03 |
By :
woraman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำถามคุณผมอ่านแล้วงงครับ ผมว่าคนอื่นก็งง เขาถึงไม่ตอบกัน
ถ้าอยากได้คำตอบ ก็อธิบายให้มันละเอียดและชัดเจนกว่านี้จะได้มั้ยครับ
|
|
|
|
|
Date :
2013-08-29 22:22:48 |
By :
งง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประมาณนี่คับ
Code (PHP)
<select name="search">
<option id="1">ก-ฮ</option>
<option id="2">รหัสสินค้า</option>
<option id="3">ราคาสินค้า</option>
</select>
|
|
|
|
|
Date :
2013-08-29 22:40:46 |
By :
woraman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ สมมุติว่าผมสินค้าหลายอย่าง ผมต้องการ select ให้เป็น option เช่น
เรียงตาม ก-ฮ เป็น option ที่ 1
เรียงตาม รหัสสินค้า เป็น option ที่ 2
เรียงตาม ราคาสินค้า เป็น option ที่ 3
Code (PHP)
<select name="sorting">
<option value="productname">เรียงลำดับตามชือ</option>
<option value="productcode">เรียงลำดับตามรหัสสินค้า</option>
<option value="price">เรียงลำดับตามราคาสินค้า</option>
</select>
$sql = "select * from product order by '{$_POST["sorting"]}' ";
|
|
|
|
|
Date :
2013-08-29 22:47:44 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การเรียงตาม ก-ฮ ความหมายก็คือเรียงจากค่าน้อยไปค่ามาก
ซึ่งในที่นี้จะใช้กับฟิลด์ที่เก็บข้อมูลตัวอักษร ดังในภาพแรกก็หมายถึงฟิลด์ที่เก็บชื่อสินค้า
ดังนั้นการเรียง ก-ฮ หรือเรียงจากน้อย ไป หาค่ามากก็ใช้ ORDER by ............ ASC ครับ
|
|
|
|
|
Date :
2013-08-29 23:03:16 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือตอนนี้ผมต้องการให้ option ที่สร้างขึ้นมา มันแสดงในหน้าเดิมคับ
เช่น เวลาผมเลือก option แสดง ตามราคา ก็ให้มันแสดงตามราคาอ่ะคับ
รบกวนแนะนำด้วยคับ
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>
<font size="5"><strong>แก้ไขสินค้า(อุปกรณ์)</strong></font>
<br /><br />
<select name="sorting">
<option value="<?=$objResult["P_name"];?>">เรียงลำดับตามชือ</option>
<option value="<?=$objResult["ID_Product"];?>">เรียงลำดับตามรหัสสินค้า</option>
<option value="<?=$objResult["P_Price"];?>">เรียงลำดับตามราคาสินค้า</option>
</select>
<?
include ('config.inc.php');
$strsql2 = "select * from product order by '{$_POST["sorting"]}' ";
?>
<?
include ('config.inc.php');
$strSQL = "SELECT * FROM product WHERE P_Type='tool'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table align="center" border="1">
<tr>
<td width="200">ชื่อสินค้า</td>
<td width="100">แก้ไขสินค้า</td>
</tr>
</table>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<table align="center" border="1">
<tr>
<td width="200"><?=$objResult["P_name"];?></td>
<td width="100"><a href="edit_tool2.php?ID_Product=<?=$objResult["ID_Product"];?>"><font color="#FF0000" size="3">Edit</font></a></td>
</tr>
</table>
<?
}
?>
</body>
</html>
|
ประวัติการแก้ไข 2013-08-29 23:13:54 2013-08-29 23:20:09
|
|
|
|
Date :
2013-08-29 23:11:48 |
By :
woraman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูน่ะครับ
<!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>
<form method="post" >
<font size="5"><strong>แก้ไขสินค้า(อุปกรณ์)</strong></font>
<br /><br />
<select name="sorting" onchange="document.forms[0].submit();">
<option value="">กรุณาเลือก</option>
<option value="P_name">เรียงลำดับตามชือ</option>
<option value="ID_Product">เรียงลำดับตามรหัสสินค้า</option>
<option value="P_Price">เรียงลำดับตามราคาสินค้า</option>
</select>
</form>
<?
include ('config.inc.php');
$sortMethod = "";
if(isset($_POST["sorting"]) && $_POST["sorting"] !== "") $sortMethod=" order by '{$_POST["sorting"]}' ";
$strSQL = "SELECT * FROM product WHERE P_Type='tool' $sortMethod ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table align="center" border="1">
<tr>
<td width="200">ชื่อสินค้า</td>
<td width="100">แก้ไขสินค้า</td>
</tr>
</table>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<table align="center" border="1">
<tr>
<td width="200"><?=$objResult["P_name"];?></td>
<td width="100"><a href="edit_tool2.php?ID_Product=<?=$objResult["ID_Product"];?>"><font color="#FF0000" size="3">Edit</font></a></td>
</tr>
</table>
<?
}
?>
</body>
</html>
|
ประวัติการแก้ไข 2013-08-29 23:41:04
|
|
|
|
Date :
2013-08-29 23:39:31 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. ต้องมี form ครอบตัว option <select name="sorting">
<form id="frmSearch" action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<select name="sorting">
<option value="productname">เรียงลำดับตามชือ</option>
<option value="productcode">เรียงลำดับตามรหัสสินค้า</option>
<option value="price">เรียงลำดับตามราคาสินค้า</option>
</select>
</form>
2. ต้องกำหนด onchange ให้กับ <select name="sorting"> เพื่อสั่งให้ form ทำการ submit
<select name="sorting" onchange="frmSearch.submit();">
3. บรรทัดที่ 24 เพื่อเงื่อนไข order by เข้าไปด้วย
Code (PHP)
$orderBy = 'ชื่อฟิลด์ชื่อสินค้า';
if(isset($_POST['sorting'])){
if($_POST['sorting'] === 'productname') $orderBy = 'ชื่อฟิลด์ชื่อสินค้า';
if($_POST['sorting'] === 'productcode') $orderBy = 'ชื่อฟิลด์รหัสสินค้า';
if($_POST['sorting'] === 'price') $orderBy = 'ชื่อราคาสินค้า';
}
$strSQL = "SELECT * FROM product WHERE P_Type='tool' ORDER BY $orderBy ";
ปล. บรรทัดที่ 17 - 21 ไม่เห็นได้ใช้นี่ครับ ลบออกเลยครับ ตัวอย่างก็คือตัวอย่างก๊อปมาวางก็ไม่ทำงานนะครับ
|
|
|
|
|
Date :
2013-08-29 23:47:18 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ทดลองตาม No.9 หรือยังครับ
|
|
|
|
|
Date :
2013-08-30 00:27:41 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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>
<form method="post" name="sortData" >
<font size="5"><strong>แก้ไขสินค้า(อุปกรณ์)</strong></font>
<br /><br />
<select name="sorting" onchange="document.sortData.submit();">
<option value="">กรุณาเลือก</option>
<option value="P_name">เรียงลำดับตามชือ</option>
<option value="ID_Product">เรียงลำดับตามรหัสสินค้า</option>
<option value="P_Price">เรียงลำดับตามราคาสินค้า</option>
</select>
</form>
<?
include ('config.inc.php');
$sortMethod = "";
if(isset($_POST["sorting"]) && $_POST["sorting"] !== "") $sortMethod=" order by {$_POST["sorting"]} ";
$strSQL = "SELECT * FROM product WHERE P_Type='tool' $sortMethod ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table align="center" border="1">
<tr>
<td width="200">ชื่อสินค้า</td>
<td width="100">แก้ไขสินค้า</td>
</tr>
</table>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<table align="center" border="1">
<tr>
<td width="200"><?=$objResult["P_name"];?></td>
<td width="100"><a href="edit_tool2.php?ID_Product=<?=$objResult["ID_Product"];?>"><font color="#FF0000" size="3">Edit</font></a></td>
</tr>
</table>
<?
}
?>
</body>
</html>
|
|
|
|
|
Date :
2013-08-30 00:52:08 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ไม่ออกอาจเป็นเพราะ P_Price ใน option ไม่ตรงกับชื่อฟิลด์ในตารางข้อมูลครับ
|
|
|
|
|
Date :
2013-08-30 01:27:24 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่มันเรียงอย่างนั้น เพราะชนิดข้อมูลคอลัมน์ราคา (price) ของคุณมันคงเป็น CHAR หรือ VARCHAR หรือ TEXT หรืออะไรก็ตามแต่ที่ไม่ใช่ตัวเลขอย่างพวก INT หรือ DECIMAL มันจึงเรียงไม่ถูกต้องตามที่ควรจะเป็น คือมันจะเรียงตามตัวอักษร ไม่ใช่ตามค่า ลองสังเกตดูสิครับ มันเรียงถูกตามตัวอักษร แต่ไม่ถูกตามค่าตัวเลข
วิธีแก้ ไม่ต้องแก้โค้ดแล้วครับ ให้เปลี่ยนขนิดข้อมูลเป็นตัวเลข จะ INT, FLOAT หรือ DECIMAL ก็ตามแต่ ก็ใช้ได้แล้วครับ
|
|
|
|
|
Date :
2013-08-30 01:28:46 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่แล้วคับพี่ ใน P_Price ผมเป็น varchar
ผมเปลี่ยนเป็น int ก็เรียงแล้วคับ
แต่ผมงง P_name ผมก็ตั้งเป็น varchar ทำไมถึงเรียงได้ละคับ
ขอบคุณสำหรับทุกคำแนะนำคับ
|
|
|
|
|
Date :
2013-08-30 01:38:01 |
By :
woraman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กลายเป็นคนกลางคืนไปซะแล้ว ฮ่าๆๆๆ
แบบนี้ถ้าจะตามตัวคงต้องตามหาหลังเที่ยงคืนล่ะมั้ง...
|
|
|
|
|
Date :
2013-08-30 01:40:25 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณท่านอาจารย์ get เลยคับ
|
|
|
|
|
Date :
2013-08-30 01:57:09 |
By :
woraman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-09-02 10:19:50 |
By :
nirunsu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|