[英]Shopping cart with PHP and SQL
我有各種數量的文件和數據庫表,包括artist
, album
和tracks
。
在網頁上,用戶可以選擇藝術家,專輯,然后選擇要購買的歌曲或專輯。
所需的功能是:當用戶選擇購買專輯時,所有曲目都被添加到購物車。
這是一個PHP代碼塊,其中包含用於購買相冊的鏈接:
<p>?php
session_start(); <br>
$albumID=$_POST["albumID"]; <br>
echo "<p>Going to buy album $albumID</p>";
echo "<p><a href=\"shopForTracks.php\">Click here to continue</a></p>";
?></p>
我還有其他帶有數據庫查詢等的文件。
有一個可以通過信件獲得藝術家,另一個可以獲得藝術家的專輯。 然后,購物,展示籃子,顯示購買,添加到籃子和結帳文件。
非常感謝任何有關此問題的幫助。
來自getTracksByAlbum.php的其他代碼
?php
include ("dbConnect.php");
$albumID=$_GET["id"];
$dbQuery="select id,title from tracks where albumID='$albumID' order by trackNumber
asc";
$dbResult=mysql_query($dbQuery);
echo $albumID."\n";
echo mysql_num_rows($dbResult)."\n";
while ($dbRow=mysql_fetch_array($dbResult)) {
echo $dbRow["id"]."_".$dbRow["title"]."\n";
}
?>
來自showBasket.php的附加代碼
<?php
if (isset($_SESSION["currentUserID"])) {
$dbQuery="select * from basket where paid='N' and userID=".$_SESSION["currentUserID"];
$dbResult=mysql_query($dbQuery);
$numTracks=mysql_num_rows($dbResult);
}
?>
<a href="login.php">Logout <?php echo $_SESSION["currentUser"]; ?></a> |
<a href="shopForTracks.php">Shop for tracks</a> |
<a href="showBasket.php">Show Basket</a> <?php echo "($numTracks)"; ?> |
<a href="checkout.php">Checkout</a> |
<a href="showMyPurchases.php">Show my purchases</a>
<hr>
<?php
$dbQuery="select tracks.title, albums.title, artists.name, basket.id ".
"from basket,tracks,albums,artists ".
"where basket.userID=".$_SESSION["currentUserID"]." ".
"and basket.paid='N' ".
"and basket.trackID=tracks.id ".
"and albums.id=tracks.albumID ".
"and artists.id=tracks.artistID";
$dbResult=mysql_query($dbQuery);
$numTracks=mysql_num_rows($dbResult);
if ($numTracks==0)
echo "<h3>Your basket is empty</h3>";
else {
?>
我不確定需要什么其他信息,我不完全理解,而且有很多。 我原來是用這個 -
$query = mysql_query("SELECT song_id FROM song WHERE album = '".$_POST['albumID']."'")
$_SESSION['ID] = array();
while($album = mysql_fetch_array($query)
{
$_SESSION['basket'][] = $albums['Track_id']
}
嘗試解決它 - 但我真的迷失了:(
根據您的最后一段代碼,您需要在shofForTracks.php
執行類似於以下代碼的shofForTracks.php
// We get the album to add via the `albumID` GET parameter
$query = mysql_query("SELECT song_id FROM song WHERE album = '".mysql_real_escape_string($_GET['albumID'])."'")
// We add a line to the cart per track of the album. We construct the query by pieces
$insert = "INSERT INTO basket (userID, paid, trackID) VALUES ";
$template = "(" . mysql_real_escape_string($_SESSION['currentUserID']) . ", 'N', %d)";
// Add a value line for each track in the array `$tracks`
$tracks = array()
while($track = mysql_fetch_array($query)
$tracks[] = sprintf($template, $track['song_id']);
// Add the lines to the insert query
// "INSERT INTO ... VALUES (ID, 'N', 1), (ID, 'N', 3)"
$insert .= implode(", ", $tracks);
mysql_query($insert);
注意 :
$_POST
, $_GET
,...)。 您現有的代碼容易受到SQL注入攻擊。 mysql_*
函數。 切換到mysqli
或PDO。 看到這個 , 那個和那個 。 GET
請求將內容添加到購物車可能會導致安全漏洞,例如XSS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.