Script php per preventivo hotel

di il
1 risposte

Script php per preventivo hotel

Salve a tutti, spero possiate essermi di aiuto, ho realizzato questo script che data una tabella mysql come questa


dovrebbe dare i giorni totali e il prezzo totale di soggiorno alle utenze
purtroppo non funziona dandomi un errore di questo tipo:
Fatal error: Call to a member function Query_select() on a non-object in /web/htdocs/www.sito.it/home/php/base.php on line 23
vi posto il codice


// file connetti.php mi connetto ed imposto la funzione

$dbhost = 'ip';
$dbusername = '********';
$dbpasswd = '********';
$database_name = '********';
$table = 'roomprices';

$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd")
    or die ("Couldn't connect to server.");

$db = mysql_select_db("$database_name", $connection)     or die("Couldn't select database.");


function PreparaSql($idhotel='', $room='', $DataArrivo='', $DataPartenza='', $IDprezzo='') {
  $sql = "declare @idhotel as int;";
  $sql.= "declare @room    as int;";
  $sql.= "declare @data_arrivo   as datetime;";
  $sql.= "declare @data_partenza as datetime;";
  $sql.= "set @idhotel = " . $idhotel . ";";
  $sql.= "set @room    = " . $room    . ";";
  $sql.= "set @data_arrivo   = '" . $DataArrivo   . "';";
  $sql.= "set @data_partenza = '" . $DataPartenza . "';";
  $sql.= "select sum(A.TotalDays) as TotalDays, sum(A.TotalCost) as TotalCost from (";
  $sql.= "select";
  $sql.= "  1 as tipo";
  $sql.= ", price_start";
  $sql.= ", price_end";
  $sql.= ", @data_arrivo as arrivo";
  $sql.= ", @data_partenza as partenza";
  $sql.= ", CASE WHEN @data_partenza <= price_end";
  $sql.= "    THEN DATEDIFF(@data_partenza, @data_arrivo)";
  $sql.= "    ELSE DATEDIFF(price_end, @data_arrivo) + 1";
  $sql.= "  END as TotalDays";
  $sql.= ", pernottamento";
  $sql.= ", pernottamento * (";
  $sql.= "    CASE WHEN @data_partenza <= price_end";
  $sql.= "    THEN DATEDIFF(@data_partenza, @data_arrivo)";
  $sql.= "    ELSE DATEDIFF(price_end, @data_arrivo) + 1";
  $sql.= "    END ) as TotalCost";
  $sql.= " from roomprices";
  $sql.= " where idhotel=@idhotel and room=@room";
  $sql.= " and @data_arrivo>=price_start and @data_arrivo<=price_end";
  $sql.= " union ";
  $sql.= "select";
  $sql.= "  2 as tipo";
  $sql.= ", price_start";
  $sql.= ", price_end";
  $sql.= ", @data_arrivo as arrivo";
  $sql.= ", @data_partenza as partenza";
  $sql.= ", DATEDIFF(@data_partenza, price_start) as TotalDays";
  $sql.= ", pernottamento";
  $sql.= ", pernottamento * ( DATEDIFF(@data_partenza, price_start) ) as TotalCost";
  $sql.= " from roomprices";
  $sql.= " where idhotel=@idhotel and room=@room";
  $sql.= " and @data_partenza>=price_start and @data_partenza<=price_end and @data_arrivo<price_start";
  $sql.= " union ";
  $sql.= "select";
  $sql.= "  3 as tipo";
  $sql.= ", price_start";
  $sql.= ", price_end";
  $sql.= ", @data_arrivo as arrivo";
  $sql.= ", @data_partenza as partenza";
  $sql.= ", 1+DATEDIFF(price_end, price_start) as TotalDays";
  $sql.= ", pernottamento";
  $sql.= ", pernottamento * ( 1+DATEDIFF(price_end, price_start) ) as TotalCost";
  $sql.= " from roomprices";
  $sql.= " where idhotel=@idhotel and room=@room";
  $sql.= " and price_start>@data_arrivo and price_end<@data_partenza";
  $sql.= ") A";
  return str_replace("pernottamento", $IDprezzo, $sql);
}


include "connetti.php";

// file base.php - stampo i dati

// dati di esempio
    $idhotel = 1;
    $room    = 1;
    $DataArrivo  = '2014/04/04';
    $DataPartenza= '2014/05/17';
    $IDprezzo    = 'pernottamento'; 
	
	// query
	
	
$sql = PreparaSql($idhotel, $room, $DataArrivo, $DataPartenza, $IDprezzo);
$data = $db->Query_select($sql); 
$dbresult = count($data);
if ($dbresult) {
  $TotalDays = $data[0][0];
  $TotalCost = $data[0][1];  }
  
  print "Hotel     : " . $idhotel      . "<br /> 
         Camera    : " . $room         . "<br />
         Pensione  : " . $IDprezzo     . "<br />
         Arrivo    : " . $DataArrivo   . "<br />
         Partenza  : " . $DataPartenza . "<br />
         TotalDays : " . $TotalDays    . "<br /> 
         TotalCost : " . $TotalCost    . "<br />";
  
	


1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte