| 
<?php      
/*
 irp_commonSQL -
 Copyright (c) 2017 Marco Sillano.  All right reserved.
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.
 
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
 // ====================  GENERAL DB access for odtphp
 // here all SQL functions.
 // Implementation using mysql_xxxx
 // License LGPL
 
 function sql($statment){
 // print($statment.'<BR>');
 //====================================================
 static $connected=false;
 // connection data
 include(dirname(__FILE__)."/irp_config.php");
 
 if(!$connected){
 /****** Connect to MySQL ******/
 if(!extension_loaded('mysql')){
 echo "<div class=error>ERROR: PHP is not configured to connect to MySQL on this machine.
 Please see <a href=http://www.php.net/manual/en/ref.mysql.php>this page</a> for help
 on how to configure MySQL.</div>";
 exit;
 }
 
 if(!mysql_connect($dbServer, $dbUsername, $dbPassword)){
 echo "<div class=error>";
 echo  'ERROR: Connection error: see $dbServer, $dbUsername, $dbPassword on irp_config.php <br />'.mysql_error();;
 echo "</div>";
 exit;
 }
 
 /****** Connection Charset ********/
 @mysql_query("SET NAMES 'utf8'");
 
 /****** Select DB ********/
 if(!mysql_select_db($dbDatabase)){
 echo "<div class=error>";
 echo  'ERROR: Errore in select DB: see $dbDatabase on irp_config.php <br />'.mysql_error();
 echo "</div>";
 exit;
 }
 $connected=true;
 } // ends if not connected
 
 if(!$result = @mysql_query($statment)){
 echo "<div class=error>";
 echo  "ERROR: Query error in  ['$statment'] <br />".mysql_error();
 echo "</div>";
 exit;
 }
 return $result;
 }
 
 // ================================== sql to arrays
 
 // low-level DB read using SQL.
 // return only a  value
 function sqlValue($query) {
 $result =  sql($query);
 $row = mysql_fetch_row($result);
 mysql_free_result ($result );
 if (isset($row[0]))
 return $row[0];
 return NULL;
 }
 
 // low-level DB read using SQL.
 // return an array of values: array =row[][0]
 function sqlArray($query) {
 $result =  sql($query);
 $dats = array();
 while( $row = mysql_fetch_row($result)){
 $dats[] = $row[0];
 }
 mysql_free_result ($result );
 return $dats;
 }
 
 /*
 *    low-level DB read using SQL.
 *  return a rows array: array[] = (row(0), row(1), row(2)...)
 */
 
 function sqlArrayTot($query){
 $r=sql($query );
 $arrayData= array();
 while ( $sub = mysql_fetch_array($r)) {
 array_push($arrayData, $sub);
 }
 mysql_free_result ($r);
 return $arrayData ;
 }
 
 // low-level DB read using SQL.
 // return an array of values: array[] = row[0]
 function sqlRecord($query) {
 $result =  sql($query);
 $dats =  mysql_fetch_array($result);
 mysql_free_result ($result );
 return $dats;
 }
 
 // low-level DB read using SQL.
 // return an associative lookup: array[row[0]] = row[1]]
 function sqlLookup($query) {
 $result =  sql($query);
 $dats = array();
 while( $row = mysql_fetch_row($result)){
 $dats[$row[0]] = $row[1];
 }
 mysql_free_result ($result );
 return $dats;
 }
 
 // HTML from DB read using SQL.
 // for combo input, options from a query (id, value), optional select key
 //  return HTML option list
 function optionsList($query, $selected = -1){
 $options = '';
 $ops = sqlLookup($query);
 while (list($chiave, $valore) = each($ops)) {
 $options .= "<option value='$chiave' ".($chiave == $selected ? ' selected = "selected"':'')." >$valore</option>\n";
 }
 return $options;
 }
 
 // HTML from DB read using SQL.
 // for checklist, return complete HTML
 // from a query (key, value), checkbox_name, list_of_keys|true|false*)
 function checkList($query,$name,$checked = false){
 $check = '';
 $ops = sqlLookup($query);
 $i = 1;
 while (list($chiave, $valore) = each($ops)) {
 if ( is_array($checked )){
 $check .= "<input type='checkbox' name='$name".$i++."' value='$chiave' ".(
 array_search($chiave,$checked)!== false ?"checked='checked'":'')." />$valore<br />";
 } else {
 $check .= "<input type='checkbox' name='$name".$i++."' value='$chiave' ".($checked?"checked='checked'":'')." />$valore<br />";
 }
 }
 return $check;
 }
 //===================================== more functions
 
 // HTML numerical combo.
 // for combo input, numerical, return HTML option list
 function optionsNList($from, $to, $selected){
 $options = '';
 for($i = $from; $i < $to; $i++) {
 $options .= "<option value='$i'".($i == $selected ? ' selected = "selected"':'')." >$i</option>\n" ;
 }
 return $options;
 }
 
 function StyleSheet(){
 return '<link rel="stylesheet" type="text/css" href="./css/style.css">';
 }
 
 // redirect to a different  page
 function movePage($num,$url){
 static $http = array (
 100 => "HTTP/1.1 100 Continue",
 101 => "HTTP/1.1 101 Switching Protocols",
 200 => "HTTP/1.1 200 OK",
 201 => "HTTP/1.1 201 Created",
 202 => "HTTP/1.1 202 Accepted",
 203 => "HTTP/1.1 203 Non-Authoritative Information",
 204 => "HTTP/1.1 204 No Content",
 205 => "HTTP/1.1 205 Reset Content",
 206 => "HTTP/1.1 206 Partial Content",
 300 => "HTTP/1.1 300 Multiple Choices",
 301 => "HTTP/1.1 301 Moved Permanently",
 302 => "HTTP/1.1 302 Found",
 303 => "HTTP/1.1 303 See Other",
 304 => "HTTP/1.1 304 Not Modified",
 305 => "HTTP/1.1 305 Use Proxy",
 307 => "HTTP/1.1 307 Temporary Redirect",
 400 => "HTTP/1.1 400 Bad Request",
 401 => "HTTP/1.1 401 Unauthorized",
 402 => "HTTP/1.1 402 Payment Required",
 403 => "HTTP/1.1 403 Forbidden",
 404 => "HTTP/1.1 404 Not Found",
 405 => "HTTP/1.1 405 Method Not Allowed",
 406 => "HTTP/1.1 406 Not Acceptable",
 407 => "HTTP/1.1 407 Proxy Authentication Required",
 408 => "HTTP/1.1 408 Request Time-out",
 409 => "HTTP/1.1 409 Conflict",
 410 => "HTTP/1.1 410 Gone",
 411 => "HTTP/1.1 411 Length Required",
 412 => "HTTP/1.1 412 Precondition Failed",
 413 => "HTTP/1.1 413 Request Entity Too Large",
 414 => "HTTP/1.1 414 Request-URI Too Large",
 415 => "HTTP/1.1 415 Unsupported Media Type",
 416 => "HTTP/1.1 416 Requested range not satisfiable",
 417 => "HTTP/1.1 417 Expectation Failed",
 500 => "HTTP/1.1 500 Internal Server Error",
 501 => "HTTP/1.1 501 Not Implemented",
 502 => "HTTP/1.1 502 Bad Gateway",
 503 => "HTTP/1.1 503 Service Unavailable",
 504 => "HTTP/1.1 504 Gateway Time-out"
 );
 header($http[$num]);
 header ("Location: $url");
 exit;
 }
 
 ?>
 |