我真的在努力使用脚本从会话数组中提取值,然后从数据库中的表中调用信息。
我可以在会话中获取要存储的值没有问题,当我打印时它看起来像这样:
数组([0] => 17 [1] => 18 [2] => 19 [3] => 20 [4] => 20 [5] => 19 [6] => 17)
然后我用下面的PHP从数组中提取值并从我的数据库中提取记录,但它似乎在某处破坏了,不幸的是我在PHP中仍然是一个菜鸟。
?php
$action = isset($_GET['action']) ? $_GET['action'] : "";
if($action=='removed'){
echo "<div> was removed from cart.</div>";
}
if(isset($_SESSION['cart'])){
$ids = "";
foreach($_SESSION['cart'] as $id){
$ids = $ids . $id . ",";
}
// remove the last comma
$ids = rtrim($ids, ',');
$query = "SELECT * FROM events WHERE EventID IN ({$ids})";
$stmt = $con->prepare( $query );
$stmt->execute();
$num = $stmt->rowCount();
if($num>0){
echo "<table border='0'>";//start table
// our table heading
echo "<tr>";
echo "<th class='textAlignLeft'>Product Name</th>";
echo "<th>Price</th>";
echo "<th>Action</th>";
echo "</tr>";
//also compute for total price
$totalPrice = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row);
$totalPrice += $EventCost;
//creating new table row per record
echo "<tr>";
echo "<td>{$EventID}</td>";
echo "<td class='textAlignRight'>{$EventCost}</td>";
echo "<td class='textAlignCenter'>";
echo "<a href='removeFromCart.php?id={$EventID} class='customButton'>";
echo "<img src='images/remove-from-cart.png' title='Remove from cart' />";
echo "</a>";
echo "</td>";
echo "</tr>";
}
echo "<tr>";
echo "<th class='textAlignCenter'>Total Price</th>";
echo "<th class='textAlignRight'>{$totalPrice}</th>";
echo "<th></th>";
echo "</tr>";
echo "</table>";
echo "<br /><div><a href='#' class='customButton'>Checkout</a></div>";
}else{
echo "<div>No products found in your cart. :(</div>";
}
}else{
echo "<div>No products in cart yet.</div>";
}
?>
我假设它打破了查询,但我仍然是一个非常的菜鸟。
我正在尝试拉出表中的所有字段,但我尝试链接的主键称为“EventID”。数组中的ID确实与我想要提取的记录相匹配。
我已经从另一个教程网站复制了这个代码,这就是为什么我在努力将它与我自己的匹配。
提前感谢您的帮助。
答案 0 :(得分:0)
http://www.php.net/manual/en/function.serialize.php
serialize将使您的数组成为文本,您可以将其保存到数据库中 然后当你想使用它时,调用unserialize它再次更改为数组