单击添加按钮时,我尝试将项目添加到数据库中的购物篮表中。这是我的表格,按钮:
<div id="products-container">
<?php
$pdo = new PDO('mysql:host=localhost;dbname=','name','password');
$result = $pdo->query('SELECT file_id, productName, price, stock FROM files');
foreach($result as $row){
echo "<form method='post' action='addbasket.php' id='shop'>";
echo "<img id='product' src=\"mfile.php?id={$row['file_id']}\">";
echo '<p>' . $row['productName'] . '</p>';
echo '<p>' . "£" . $row['price'] . '</p>';
echo '<p>' . "Stock Level: " . $row['stock'] . '</p>';
echo '<input type="submit" name="add" value="Add">';
echo "</form>";
}
?>
</div>
然后我有一个单独的文件与我的PHP将项目添加到该表,所以我想要做的是将会话名称,fileid,productname和价格存储在篮子表中(fileid,productname和价格来自它只是重定向到空白的addbasket.php页面并且不向数据库添加任何内容。任何人都可以看到我出错的地方吗?:
<?php
function newAccount(){
$pdo=new PDO('mysql:host=localhost;dbname=', 'name', 'password');
$name=$_SESSION['userName'];
$fileid=$_GET['file_id'];
$productname=$_GET['productName'];
$price=$_GET['price'];
$st = $pdo->prepare('INSERT INTO basket (Username,file_id,productName,price) VALUES (:userName,:file_id,:productName,:price)');
if(!isset($error)){
//no error
$sthandler = $pdo->prepare("SELECT file_id FROM files WHERE file_id = :file_id");
$sthandler->bindParam(':file_id', $fileid);
$sthandler->execute();
if($sthandler->rowCount() > 0){
die(header("Location: mproducts.php"));
}else {
$st->execute(array('Username' => $name, 'file_id'=>$fileid, 'productName'=>$productname, 'price'=> $price));
header("Location: mproducts.php");
}
}
if(isset($_POST['add'])){
newAccount();
}
}
?>