Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Die Kataloganwendung verfügt über ein Hauptskript. Das Skript besteht aus zwei wesentlichen Abschnitten: einer zeigt die Indexseite und der andere die Produktseite an. Der Abschnitt mit der Indexseite wird beim ersten Start der Anwendung ausgeführt, bevor Schaltflächen angeklickt werden können. Wenn der Benutzer eine Schaltfläche anklickt, wird die Webseite in Abhängigkeit von der angeklickten Schaltfläche aktualisiert. Es folgt eine Übersicht über den Aufbau des Skripts:
|
Code View:
Scroll
/
Show All if (Button)
Die Schaltfläche Kategorie wählen wurde angeklickt
1 Prüfen, ob eine Kategorie ausgewählt wurde. Falls
nicht, Indexseite erneut anzeigen.
2 Anzeige der Produktseite.
Die Schaltfläche Kategorie wählen wurde nicht angeklickt
1 Anzeige der Indexseite.
Listing 5.5 enthält den Code für das Skript der Online-Kataloganwendung.
<?php
/* Programm: Catalog.php
* Zweck: Zeigt einen Produktkatalog an, der aus zwei
* Seiten besteht: einer Indexseite mit
* Kategorien und einer Produktseite, die
* nach Auswahl einer Kategorie angezeigt wird.
*/
include("functions_main.inc");
$n_per_page = 2; #Anzahl der Produkte je Seite
if(isset($_POST['Products'])) #10
{
if(!isset($_POST['interest'])) #12
{
header("location: Catalog.php");
exit();
}
Code View:
Scroll
/
Show All else #17
{
if(isset($_POST['n_end'])) #19
{
if($_POST['Products'] == "Vorherige") #21
{
$n_start = $_POST['n_end']-($n_per_page);
}
else #25
{
$n_start = $_POST['n_end'] + 1;
}
}
else #30
{
$n_start = 1;
}
$n_end = $n_start + $n_per_page −1; #35
$connect = connect_to_db("Vars.inc"); #36
$query_food = "SELECT * FROM Food WHERE
type='$_POST[interest]' ORDER BY name";
$result = mysqli_query($connect,$query_food)
or die ("query_food: ".mysqli_error($connect)); #39
$n=1;
while($row = mysqli_fetch_assoc($result)) #41
{
foreach($row as $field => $value) #43
{
$products[$n][$field]=$value;
}
$n++;
}
$n_products = sizeof($products); #49
if($n_end > $n_products)
{
$n_end = $n_products;
}
include("fields_products_page.inc"); #54
include("catalog_product_page.inc");
}
}
else #58
{
$cxn = connect_to_db("Vars.inc"); #60
$query = "SELECT DISTINCT category,type FROM Food
ORDER BY category,type";
$result = mysqli_query($cxn,$query)
or die ("Konnte Abfrage nicht starten:
".mysqli_error($cxn)); #65
while($row = mysqli_fetch_array($result)) #66
{
$food_categories[$row['category']][]=$row['type'];
}
include("fields_index_page.inc"); #70
include("catalog_index_page.inc");
}
?> |