Hi, I am trying to build a shopping cart for my DVD website and am having
trouble reading variable over different pages.
I have a page that allows the user to add things to their cart and this page
also display what they have selected. I also am trying to build a 'checkout'
page that displays the DVDs they have chosen, the cost and allows them to
remove a DVD from their cart.
However, I can't even get the checkout page to display the list of DVDs that
is displayed on the other page. Globals variables have been turned off on
the server I am using.
Any help with this would be great.
Here is the code I was referring to:
<?php
// this section creates a session, connects to the db and handles the two
buttons being pressed.
session_start();
session_register("trolley");
require ('mysql.php');
mysql_connect ($host, $user, $passwd);
mysql_select_db ($dbName);
if (isset ($_GET['add']))
$_SESSION['trolley'][] = $_GET['add'];
else if ($_GET['op'] === 'clear')
$_SESSION['trolley'] = "";
$_GET['getdvds_query'];
$_GET['search_text'];
$_GET['search_in'];
$_GET['genrename'];
?>
<html>
<head>
<title>PHP & MySQL</title>
</head>
<table>
<?php
if ($search_in == "title") {
$getdvds_query = mysql_query ("SELECT dvdid, title, duration, rel, descr,
genre, stock, price FROM dvd where title LIKE '%$search_text%'");
}
else if ($search_in == "director") {
$getdvds_query = mysql_query ("select dvd.dvdid, dvd.title, dvd.duration,
dvd.rel, dvd.descr, dvd.genre, dvd.stock, dvd.price from dvd, director where
director.name like '%$search_text%'");
}
else if ($search_in == "actor") {
$getdvds_query = mysql_query ("select dvd.dvdid, dvd.title, dvd.duration,
dvd.rel, dvd.descr, dvd.genre, dvd.stock, dvd.price from dvd, actordvd,
actor where actor.actorid = actordvd.actorid and actordvd.dvdid = dvd.dvdid
and actor.name like '%$search_text%'");
}
else
$getdvds_query = mysql_query ("SELECT dvdid, title, duration, rel, descr, ge
nre, stock, price FROM dvd where genre LIKE '%$genrename%'");
if(!$getdvds_query) {
die("No result, error: ".mysql_error());
}
echo "<table bgcolor=\"ddeeff\"><thead><tr>";
for ( $i = 1 ; $i < mysql_num_fields($getdvds_query) ; $i++ ) {
echo "<th bgcolor=\"abcdef\">" .
mysql_field_name($getdvds_query,$i) . "</th>\n";
}
if ( mysql_num_rows($getdvds_query) > 0 )
{
while ( $row = mysql_fetch_assoc($getdvds_query) )
{
$dvd[$row['dvdid']] = $row;
echo "<tr>\n";
echo "<td>{$row['title']}</td>\n";
echo "<td>{$row['duration']}</td>\n";
echo "<td>{$row['rel']}</td>\n";
echo "<td>{$row['descr']}</td>\n";
echo "<td>{$row['genre']}</td>\n";
echo "<td>{$row['stock']}</td>\n";
echo "<td>{$row['price']}</td>\n";
echo "<td><a
href=\"start.php?main=search&add={$row[dvdid]}\">add to basket</a></td>";
echo "</tr>\n";
}
}
?>
</table>
<a href="start.php?main=search&op=clear">empty trolley</a><br /><br />
<a href="start.php?main=checkout&trolley<?=SID?>">Che ckout</a><br /><br />
<?php
//this section outputs basket contents
if (!empty ($_SESSION['trolley']))
{
echo 'Trolley contents:<br />';
foreach ($_SESSION['trolley'] as $trolley_item)
echo $dvd[$trolley_item]['title']."<br />";
}
else
echo 'Trolley is empty!';
?>
</body>
</html>
Here is my checkout page:
<?php
// this section creates a session, connects to the db and handles the two
buttons being pressed.
session_start();
session_register("trolley");
session_register("add");
require ('mysql.php');
mysql_connect ($host, $user, $passwd);
mysql_select_db ($dbName);
$_SESSION['trolley'];
if (!empty ($_SESSION['trolley']))
{
echo 'Trolley contents:<br />';
echo "<table bgcolor=\"ddeeff\"><thead><tr>";
foreach ($_SESSION['trolley'] as $trolley_item)
echo "<tr>\n";
echo $dvd[$trolley_item]['title']."<br />";
echo $dvd[$trolley_item]['price']."<br />";
echo "</tr>\n";
}
else
{
echo 'Trolley is empty!';
}
?>