| 
<?php 
ob_start(); //necessary when php.ini output_buffering setting on server is OFF (ajax function need it to clean buffer)
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>DBNavigator class - Full Example</title>
 <style type="text/css" media="screen">
 @import "style.css";
 </style>
 </head>
 <body>
 <?php
 
 /*
 EXAMPLE: how build a simple users management in an E-Commerce system
 
 This example try to show major functionalities of DBNavigator class
 
 Enjoy :)
 
 Michele Castellucci
 [email protected]
 http://www.direfareprogrammare.com
 */
 
 require("functions.inc.php");
 
 require("HTMLForm.php");
 require("HTMLPostProcessor.php");
 require("PageNavigator.php");
 
 require("TextEditorContainer.php");
 require("Adv_TextArea.php");
 
 require("DBNavigator.php");
 
 
 
 
 //mysql_connect('localhost',"username","userpassword");
 //mysql_select_db("dbname");
 
 mysql_connect('localhost',"root","");
 mysql_select_db("319_dfp");
 
 //////////
 
 if (isset($_GET['empty_cart'])) //empty an user cart
 {
 mysql_query("DELETE FROM cart WHERE user_id='{$_GET['empty_cart']}'")    or die ("Error on emptying cart: <br />".mysql_error());
 unset($_GET['empty_cart']);
 }
 
 $function='';
 function customViewResult($result)
 {
 global $DBNUsers;
 
 $return="<strong>Welcome to the custom result viewing!!!</strong>";
 while ($row=mysql_fetch_row($result))
 {
 $return.='<div style="float:left;margin:5px;border:1px solid #00F;padding:3px">';
 
 for ($i=0;isset($row[$i]);$i++) {$return.=$row[$i].'<br />';}
 
 $return.=$DBNUsers->getEditLink($row[0]).'   '.$DBNUsers->getDeleteLink($row[0]).'</div>';
 }
 return $return.'<div style="clear:both"></div>';
 }
 //  $function='customViewResult';  //AFTER YOU EXAMINE THIS EXAMPLE, TRY TO ACTIVATE THIS LINE OF CODE
 
 
 
 ///first, create Cart Object because it will be passes to setDeleteRecursive() method of Users Object, if it is non used for manage datas
 $DBNCart=new DBNavigator(" SELECT cart.id, users.inserting_date, products.name, cart.quantity, products.price, (cart.quantity * products.price) AS row_price
 FROM cart
 INNER JOIN users ON users.id=cart.user_id
 INNER JOIN products ON products.id=cart.product_id
 ".(isset($_GET['user_id'])?" WHERE cart.user_id='{$_GET['user_id']}'":'')." ");
 
 
 $DBNCart->setTableStyle('TD','TD','headerTD');
 $DBNCart->setClassForFormInput('mini','mini_btn','mini_txa');
 
 $DBNCart->setTableCellSpacing(3);
 
 $DBNCart->setPrimaryTable("cart");
 $DBNCart->showAllElements(true);
 $DBNCart->setDefaultOrd("inserting_date");
 
 $DBNCart->setRowName("product");
 $DBNCart->setLanguage('english');
 $DBNCart->hidePrimaryKey(true);
 
 $DBNCart->canEdit(true);
 $DBNCart->canDelete(true);
 $DBNCart->canInsert(true);
 $DBNCart->canExport(true);
 $DBNCart->canMultipleEditDelete(true);
 $DBNCart->useAjax(true);
 
 
 if ($DBNCart->status()=='inserting')
 $DBNCart->getEditForm()->addInput("hidden","inserting_date",date("Y-m-d H:i:s"));
 else
 $DBNCart->removeInput("inserting_date");
 
 if (isset($_GET['user_id']))
 $DBNCart->getEditForm()->addInput("hidden","user_id",$_GET['user_id']);
 
 /////////////////////////////////////////////
 
 
 if (!isset($_GET['user_id']))
 {
 
 $DBNUsers=new DBNavigator("
 SELECT users.id ,users.inserting_date, users.name, users.surname, users.password, users.email, users.gender,
 provinces.name AS province, provinces.region,
 users.birth_date, users.profession, users.notes, users.curriculum, users.photo_1, users.photo_2, users.attachment,
 count(products.id) AS items, sum(cart.quantity * products.price) AS total_price
 
 FROM users
 LEFT JOIN provinces ON provinces.id=users.province_id
 LEFT JOIN cart ON cart.user_id=users.id
 LEFT JOIN products ON products.id=cart.product_id
 
 GROUP BY users.id
 ");
 
 
 
 $DBNUsers->setDateInterval(date('Y')-90,date('Y'));
 
 //layout options
 $DBNUsers->setTableStyle('TD','TD','headerTD');
 $DBNUsers->setClassForFormInput('mini','mini_btn','mini_txa');
 
 $DBNUsers->setTableCellSpacing(3);
 /////
 
 $DBNUsers->setPrimaryTable("users");
 $DBNUsers->setResultsPerPage(5);
 $DBNUsers->setDefaultOrd("inserting_date DESC");
 
 $DBNUsers->setRowName("user");
 $DBNUsers->setLanguage('english');
 $DBNUsers->hidePrimaryKey(true);
 
 
 $DBNUsers->setDeleteRecursive('',$DBNCart,"Are you sure? This will delete also user cart!"); ///Here we use Cart
 
 $DBNUsers->addDataCol("Products list","SELECT products.name
 FROM cart
 INNER JOIN products ON products.id = cart.product_id
 WHERE cart.user_id='%current_row_id%'",'LINKED_RECORDS');
 
 $DBNUsers->addLinkCol('Empty cart','empty_cart',"delete.png",true,false,false,"{{{items}}}>0");
 $DBNUsers->addLinkCol('Edit cart','user_id',"detail.gif"    ,true,false,false,false            ,array('items','total_price'));
 
 
 $DBNUsers->setFieldStatusIndicator('attachment','full.gif','empty.gif');
 $DBNUsers->addSwitchCol  ('gender', 'male.gif','female.gif');
 
 $DBNUsers->canEdit(true);
 $DBNUsers->canDelete(true);
 $DBNUsers->canInsert(true);
 $DBNUsers->canExport(true);
 $DBNUsers->canMultipleEditDelete(true);
 $DBNUsers->useAjax(true);
 
 $DBNUsers->setHTMLTextareaParams(array('filesPath'=>".",
 'fontSize'=>true,
 'selectFont'=>true));
 
 
 $DBNUsers->canViewForPrint(true);
 
 
 
 
 $DBNUsers->setImageField(array('photo_1','photo_2'),100,true);
 $DBNUsers->setPasswordField("password");
 $DBNUsers->setFileField("attachment");
 $DBNUsers->setMailField("email");
 
 $DBNUsers->setSearchField("users.gender");
 $DBNUsers->setSearchField("provinces.name");
 $DBNUsers->setSearchField("provinces.region");
 $DBNUsers->setSearchField("users.name",'',"users.surname",'');
 
 $DBNUsers->setFileNameCriteria("*tb*_*pk*_*cn*.*ext*"); //The default: tableName_keyNumber_fieldName.ext (EX: users_4_attachment.jpg)
 $DBNUsers->setFilePath(".");
 
 
 $DBNUsers->removeDisplaying('birth_date','profession','notes','curriculum','photo_2');
 
 if ($DBNUsers->status()=='inserting')
 $DBNUsers->getEditForm()->addInput("hidden","inserting_date",date("Y-m-d H:i:s"));
 else
 $DBNUsers->removeInput("inserting_date");
 
 echo $DBNUsers->printAddRowButton()."      ";
 echo $DBNUsers->printExcelXmlDownloadButton()."      ";
 echo $DBNUsers->printCsvDownloadButton(). "<br /><br />";
 
 
 $DBNUsers->go(false,false,$function);
 
 }
 else
 {
 $user=mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='{$_GET['user_id']}'"));
 
 echo "This is the shopping cart of <strong>".$user['name']." ".$user['surname']."</strong><br /><br />
 <a href=\"{$_SERVER['PHP_SELF']}?".buildQueryString('user_id')."\">BACK TO USERS</a><br /><br />";
 
 echo $DBNCart->printAddRowButton()."      ";
 echo $DBNCart->printExcelXmlDownloadButton()."      ";
 echo $DBNCart->printCsvDownloadButton(). "<br /><br />";
 
 
 $DBNCart->go();
 }
 
 ?>
 </body>
 </html>
 |