ช่วยหน่อยครับ ต้องการใส่ค่า session[] ไว้ใน NOT IN ทำยังได้บ้างครับ
คือต้องการ ใส่ค่าของ $_SESSION["strProductID"] ที่ถูกเก็บเป็น array ไปใส่ใน NOT IN แล้วมี คอมม่า "," ด้วยครับ
การทำงานก็คือ เมื่อเลือก order แล้ว ให้ส่งค่า ProductID ไปใน NOT IN เพื่อให้ตารางไม่แสดง สินค้าที่เลือกไปแล้วนะครับ
รบกวนท่านผู้รู้ช่วยแนะนำด้วยว่าจะต้องเขียนโค๊ดเพิ่มเติม ยังไงครับ ต้องใช้ explode() หรือเปล่าครับ แต่ใช้ไม่เป็นอะครับ
ขอบคุณล่วงหน้านะครับ
Product.php
<?
session_start();
?>
<html>
<head>
<title>Product</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body,td { font-family: Tahoma; font-size: 12px;}
</style>
</head>
<?
mysql_connect("localhost","root","1234");
mysql_select_db("dbmy");
$strSQL = "SELECT bank.*,product.* FROM bank,product WHERE bank.BankID= product.BankID and product.ProductID NOT IN ( จะใส่ค่าในนี้ )"; // <------- ต้องการใส่ค่าในวงเว็บครับ เช่น 101,012,103 เป็นต้น
$objQuery = mysql_query($strSQL) or die(mysql_error());
?>
<table width="904" border="1" cellpadding="5" cellspacing="0">
<tr>
<td width="64"><strong>ProductID</strong></td>
<td width="289"><strong>ชื่อสินค้า</strong></td>
<td width="153"><strong>ประเภท</strong></td>
<td width="113"><strong>ธนาคาร</strong></td>
<td width="76"><strong>เลือก</strong></td>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><?=$objResult["ProductID"];?></td>
<td><?=$objResult["ProductName"];?></td>
<td><?=$objResult["Type"];?></td>
<td><?=$objResult["BankName"];?></td>
<td><a href="order.php?ProductID=<?=$objResult["ProductID"];?>">Order</a></td>
</tr>
<?
}
?>
</table>
order.php
<?
ob_start();
session_start();
if(!isset($_SESSION["intLine"])) // ถ้า $_SESSION["intLine"] ยังไม่ถูกประกาศค่าตัวแปร ทำตรงนี้ก่อน
{
$_SESSION["intLine"] = 0;
$_SESSION["strProductID"][0] = $_GET["ProductID"];
$_GET["ProductID"]
header("location:product.php");
} else {
$key = array_search($_GET["ProductID"], $_SESSION["strProductID"]);
if((string)$key != "")
{
}
else
{
$_SESSION["intLine"] = $_SESSION["intLine"] + 1;
$intNewLine = $_SESSION["intLine"];
$_SESSION["strProductID"][$intNewLine] = $_GET["ProductID"];
}
header("location:product.php");
}
?>
Tag : PHP, MySQL
ประวัติการแก้ไข 2012-09-15 13:24:53 2012-09-15 13:25:48 2012-09-15 13:27:18 2012-09-15 13:30:02
Date :
2012-09-15 13:24:11
By :
vinaish
View :
1124
Reply :
6
$_SESSION["strProductID"] เป็น array จริงๆหรอครับ (ซึ่งผมคิดว่าคุณไม่ได้เก็บเป็น array แน่ๆ)
หรือแค่เก็บเป็นแบบนี้ 101,102,103
แต่ถ้าเก็บเป็น type array จริงๆให้ลองแบบนี้
Code (PHP)
$strSQL = "SELECT bank.*,product.* FROM bank,product WHERE bank.BankID= product.BankID and product.ProductID NOT IN (".implode($_SESSION["strProductID"]).")";
ถ้าไม่ใช่ array แต่ เก็บเป็นแบบนี้ 101,102,103 ลองแบบนี้
Code (PHP)
$strSQL = "SELECT bank.*,product.* FROM bank,product WHERE bank.BankID= product.BankID and product.ProductID NOT IN (".$_SESSION["strProductID"].")";
ประวัติการแก้ไข 2012-09-15 13:45:11
Date :
2012-09-15 13:44:18
By :
mangkunzo
ยังไม่ได้อะครับ ลอง echo มามันได้ค่า แบบนี้ 101103102104105109110111113112 แต่ต้องการ ให้มีคอมม่าด้วยอะครับ
ไม่ทราบว่าผิดตรงไหน ครับ
Code (PHP)
for($i=0;$i<=(int)$_SESSION["intLine"];$i++)
{
$arr = array($_SESSION["strProductID"][$i]);
$a = implode(",",$arr) ;
echo $a;
}
Date :
2012-09-15 14:06:30
By :
vinaish
$_SESSION["strProductID"][$i] <-- ตัวนี้ครับ
Date :
2012-09-15 16:08:26
By :
vinaish
จะลองดูนะครับ ขอบคุณสำหรับคำแนะนำครับ
Date :
2012-09-15 17:48:00
By :
vinaish
Load balance : Server 03