| 
<?php      
 // ====================  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__)."/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: Errore di connessione <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 <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
 
 // return only a  value
 function sqlValue($query) {
 $result =  sql($query);
 $row = mysql_fetch_row($result);
 mysql_free_result ($result );
 return $row[0];
 }
 
 // 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)...)
 *  note: in queries are allowed fields (#field#) replaced by actual values in $this->assigned_field
 */
 
 function sqlArrayTot($query){
 $r=sql($query );
 $arrayData= array();
 while ( $sub = mysql_fetch_array($r)) {
 array_push($arrayData, $sub);
 }
 mysql_free_result ($r);
 return $arrayData ;
 }
 
 
 // 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;
 }
 
 
 // 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;
 }
 
 // for combo input, options from a query (id, value)
 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;
 }
 
 // per combo input, coppie numeriche
 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;
 }
 
 // per checklist, da una query (id, value, list di chiavi|true|false)
 function checkList($query,$name,$checked){
 $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;
 }
 
 // per redirect ad una nuova pagina da php
 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;
 }
 
 ?>
 |