|
|
|
สอบถามเกี่ยวกับการค้นหาโดยรับค่ามาหลาย ๆ ค่า Search PHP |
|
|
|
|
|
|
|
คือผมทำแบบฟอร์มเกี่ยวการเช็คราคาสินค้า ซึ่งในกรณีนี้ผมต้องการค้นหาทีเดียวหลาย ๆ ค่าพร้อมกัน
ลองทำแบบนี้แล้วมันแสดงผลออกมาแค่ค่าเดียวครับ ไม่ทราบว่าผิดต้องแก้ไขตรงไหน
ขอบคุณครับ
Code (PHP)
$keyword[0] = $_POST['keyword0'];
$keyword[1] = $_POST['keyword1'];
$keyword[2] = $_POST['keyword2'];
$keyword[3] = $_POST['keyword3'];
$keyword[4] = $_POST['keyword4'];
$keyword[5] = $_POST['keyword5'];
$keyword[6] = $_POST['keyword6'];
$keyword[7] = $_POST['keyword7'];
$keyword[8] = $_POST['keyword8'];
$keyword[9] = $_POST['keyword9'];
$keyword[10] = $_POST['keyword10'];
$arr=array("$keyword[0]","$keyword[1]","$keyword[2]","$keyword[3]","$keyword[4]","$keyword[5]","$keyword[6]","$keyword[7]","$keyword[8]","$keyword[9]","$keyword[10]");
for($i=0;$i<=11;$i++)
{
if($arr[$i] == ""){
}else{
$sqlprice = "select * from oc_pricelist where PartNo = '$arr[$i]'";
$pricequery= mysql_query($sqlprice);
}
}
$pricequery = mysql_query($sqlprice);
While($rowprice = mysql_fetch_array($pricequery)){
$shprice = $rowtag[Price];
$shpart = $rowtag[PartNo];
echo "price $shprice no $shpart ";
}
Tag : PHP
|
|
|
|
|
|
Date :
2014-10-13 14:14:00 |
By :
Mal2s |
View :
1115 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
$keyword[0] = $_POST['keyword0'];
$keyword[1] = $_POST['keyword1'];
$keyword[2] = $_POST['keyword2'];
$keyword[3] = $_POST['keyword3'];
$keyword[4] = $_POST['keyword4'];
$keyword[5] = $_POST['keyword5'];
$keyword[6] = $_POST['keyword6'];
$keyword[7] = $_POST['keyword7'];
$keyword[8] = $_POST['keyword8'];
$keyword[9] = $_POST['keyword9'];
$keyword[10] = $_POST['keyword10'];
//$arr=array("$keyword[0]","$keyword[1]","$keyword[2]","$keyword[3]","$keyword[4]","$keyword[5]","$keyword[6]","$keyword[7]","$keyword[8]","$keyword[9]","$keyword[10]");
$in_key = "( '".implode("','", $keyword). "' )";
$sqlprice = "select * from oc_pricelist where PartNo in $in_key ";
echo $sqlprice, "<br>\n"; // echo for check SQL Statement
$pricequery = mysql_query($sqlprice);
While($rowprice = mysql_fetch_array($pricequery)){
$shprice = $rowtag['Price'];
$shpart = $rowtag['PartNo'];
echo "price $shprice no $shpart ";
}
?>
|
ประวัติการแก้ไข 2014-10-13 14:25:31
|
|
|
|
Date :
2014-10-13 14:23:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมดูจาก coding แล้ว ที่แสดงออกมาค่าเดียว เพราะว่า Code (PHP)
$pricequery = mysql_query($sqlprice);
While($rowprice = mysql_fetch_array($pricequery)){
$shprice = $rowtag[Price];
$shpart = $rowtag[PartNo];
echo "price $shprice no $shpart ";
}
อยู่นอก loop for ครับ โดยอาจจะย้ายไปไว้ใน loop for ก็ได้ หรืออีกวิธีหนึ่งคือ นำค่า $_POST แล้ววนลูปเพื่อเอา value มาต่อ string ให้เป็นแบบตัวอย่าง $str = "'1','2','3','4','5','6'"; เป็นต้น แล้วนำ string ดังกล่าวมาใช้ใน SQL โดยใช้คำสั่ง IN ครับ
Code (PHP)
$sqlprice = "select * from oc_pricelist where PartNo IN (" . $str . ")";
$pricequery = mysql_query($sqlprice);
while($rowprice = mysql_fetch_array($pricequery)){
$shprice = $rowtag[Price];
$shpart = $rowtag[PartNo];
echo "price $shprice no $shpart ";
}
|
|
|
|
|
Date :
2014-10-13 14:30:45 |
By :
Pangpondpuen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สอบถามเพิ่มเติมครับ
1. หากผมต้องการเอาราคาที่ได้มาคูณจำนวนที่กรอกหน้าฟอร์ม
2. เอาผลรวมทั้งหมดที่ได้จากข้อ 1 มาแสดง
Code (PHP)
<?php
$keyword[0] = $_POST['keyword0'];
$keyword[1] = $_POST['keyword1'];
$keyword[2] = $_POST['keyword2'];
$keyword[3] = $_POST['keyword3'];
$keyword[4] = $_POST['keyword4'];
$qty[0] = $_POST['qty0'];
$qty[1] = $_POST['qty1'];
$qty[2] = $_POST['qty2'];
$qty[3] = $_POST['qty3'];
$qty[4] = $_POST['qty4'];
//รับค่า qty ตรงนี้ต้องเขียนแบบ $in_key หรือเปล่าครับ
$in_key = "( '".implode("','", $keyword). "' )";
$sqlprice = "select * from oc_pricelist where PartNo in $in_key ";
echo "<div align='center' style='width:300px auto;'><table width='300' border='1'><tr>\n";
echo "<th width='120'> <div align='center'>รหัสสินค้า</div></th>\n";
echo "<th width='60'> <div align='center'>จำนวน</div></th>\n";
echo "<th width='60'> <div align='center'>ตัวละ</div></th>\n";
echo "<th width='60'> <div align='center'>ราคา</div></th>\n";
echo "</tr>\n";
$pricequery = mysql_query($sqlprice);
While($rowprice = mysql_fetch_array($pricequery)){
$shprice = $rowprice['Price'];
$shpart = $rowprice['PartNo'];
//$shsum = ??? ตรงนี้ต้องการราคาที่ได้จากฐานข้อมูล * จำนวน
echo "<tr><td><div align='center'>$shpart</div></td>\n";
//$shqty เป็นการดึงค่าจำนวนที่เรากรอกที่หน้าฟอร์ม
echo "<td><div align='center'>$shqty</div></td>\n";
echo "<td><div align='center'>$shprice</div></td>\n";
echo "<td><div align='center'>$shsum</div></td>\n";
echo "</tr>\n";
}
$vat = $shsum*7/100;
$total += $shsum+$vat;
echo "<tr><th align='center'>ราคาทั้งหมด</th>\n";
echo "<th align='right' colspan='3'>$shsum</th></tr>\n";
echo "<tr><th align='center'>VAT 7%</th>\n";
echo "<th align='right' colspan='3'>$vat</th></tr>\n";
echo "<tr><th align='center'>รวมทั้งสิ้น</th>\n";
echo "<th align='right' colspan='3'>$total</th></tr>\n";
echo "</table></div>\n";
?>
|
|
|
|
|
Date :
2014-10-13 15:46:12 |
By :
Mal2s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$shsum = $qty[ array_search( $shpart , $keyword ) ] * $shprice;
ปล. ออกแบบ HTML ใหม่ดีกว่าครับ
<input type=text name="keyword[]" value=k1 ><input type=text name="qty[]" value=1 >
<input type=text name="keyword[]" value=k2 ><input type=text name="qty[]" value=2 >
<input type=text name="keyword[]" value=k3 ><input type=text name="qty[]" value=3 >
กำหนดให้เป็น array เลยครับตอนส่งมา ก็จะเป็น array ไม่ต้องมากำหนดใหม่
|
ประวัติการแก้ไข 2014-10-13 17:19:30
|
|
|
|
Date :
2014-10-13 17:16:09 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างก็เขียนให้แล้วไงครับ tag input ของ form กรอกข้อความ
|
|
|
|
|
Date :
2014-10-13 17:54:11 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-10-13 17:54:11
รายละเอียดของการตอบ ::
ขอบคุณมากครับ ทำได้แล้ว
Code (PHP)
ขอโพสไว้เผื่อใครอาจจะอยากทำแบบคล้าย ๆ กันไว้เป็นแนวทาง
<div align='center' style='width:300px auto;'>
<table width='300' border='1'>
<tr>
<th width='120' align="center">รหัสสินค้า</th>
<!--<th width='210' align="center">รายละเอียด</th>-->
<th width='60' align='center'>จำนวน</th>
<th width='60' align='center'>ตัวละ</th>
<th width='60' align='center'>ราคา</th>
</tr>
<?php
$count = $_POST['keyword'];
$Countkey = sizeof($count);
for($i=0;$i<$Countkey;$i++){
$Countqty = $qty[$i];
$sqlprice = "select * from oc_pricelist where PartNo = '$keyword[$i]' ";
$pricequery = mysql_query($sqlprice);
$rowprice = mysql_fetch_array($pricequery);
//$Description = $rowprice['Description'];
$Price = $rowprice['Price'];
$Showprice = number_format($Price);
$Showpart = $rowprice['PartNo'];
$QtyPrice = $qty[ array_search( $Showpart , $keyword ) ] * $Price;
$Sumprice = number_format($QtyPrice, 2, '.', ',');
$SumQty += (int)$QtyPrice;
$Sumtotal = number_format($SumQty, 2, '.', ',');
echo "<tr><td align='center'>$Showpart</td>\n";
//echo "<td align='center'>$Description</td>\n";
echo "<td align='center'>$Countqty</td>\n";
echo "<td align='center'>$Showprice</td>\n";
echo "<td align='right'>$Sumprice</td>\n";
echo "</tr>\n";
}
$Vat = $SumQty*7/100;
$Total += $SumQty+$Vat;
$NetTotal = number_format($Total, 2, '.', ',');
$NetVat = number_format($Vat, 2, '.', ',');
?>
<tr><th align='center'>ราคาทั้งหมด</th>
<th align='right' colspan='4'><?php echo $Sumtotal; ?></th></tr>
<tr><th align='center'>VAT 7%</th>
<th align='right' colspan='4'><?php echo $NetVat; ?></th></tr>
<tr><th align='center'>รวมทั้งสิ้น</th>
<th align='right' colspan='4'><?php echo $NetTotal; ?></th></tr>
</table></div>
|
|
|
|
|
Date :
2014-10-13 23:03:44 |
By :
Mal2s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|