<?

// Modul pro práci s databází //

// Předpona před názvem tabulek
if(!isset($DB_Prefix)) $DB_Prefix = '';

//echo('Tuto stránku nelze zobrazit přímo!');
$DB_LastResults = array();  // Dočasné uchování výsledků

// Inicializace databáze //
function DB_Init($host,$user,$password,$name)
{
  global $DB_Tables;
  $password = 'gurubashi';
  $link = mysql_connect($host,$user,$password);
  //echo(mysql_errno());
  if(mysql_errno()!=FALSE) die(mysql_error());
  mysql_select_db($name);
  if(mysql_errno()==1049) db_query("CREATE DATABASE $name");
  $Tables = mysql_list_tables($name);
  $DB_Tables = array();
  for($I=0;$I<mysql_num_rows($Tables);$I++) 
  {
    $DB_Tables[$I] = mysql_tablename($Tables,$I);
  }
}

// Dotaz na databázi //
function DB_Query($query)
{
  global $db_result,$DB_LastResults;
  //echo('DB: Požadavek('.$query.')<br>');
  //$DB_LastResults[0] = mysql_query($query);
  //System_ShowArray($DB_LastResults);
  $db_result = mysql_query($query);
  if(mysql_error()) echo('DB: Chyba požadavku číslo '.mysql_errno().'!('.mysql_error().')<br>Požadavek: '.$query.'<br>');
}

// Výběr dalšího řádku //
function DB_Row()
{
  global $db_result;
  return(mysql_fetch_array($db_result));
}

// Počet vrácených řádků //
function DB_NumRows()
{
  global $db_result;
  return(mysql_num_rows($db_result));
}

// Uschová výsledek
function DB_Save()
{
  global $db_result,$DB_LastResults;
  array_push($DB_LastResults,$db_result);
  //System_ShowArray($DB_LastResults);
}

// Načte předchozí výsledek
function DB_Load()
{
  global $db_result,$DB_LastResults;
  $db_result = array_pop($DB_LastResults);
}

// SELECT
function DB_Select($Table,$What,$Condition = 1)
{
  global $DB_Prefix;
  DB_Query("SELECT ".$What." FROM ".$DB_Prefix.$Table." WHERE ".$Condition);  
}

// DELETE
function DB_Delete($Table,$Condition)
{
  global $DB_Prefix;
  DB_Query("DELETE FROM ".$DB_Prefix.$Table." WHERE ".$Condition);  
}

// Vložení nového řádku do databáze //
function DB_Insert($table,$data)
{
  global $DB_Prefix;
  $name = '';
  $values = '';
  foreach($data as $key => $value)
  {
    $value = strtr($value,'"','\"');
    $name .= ",".$key;
    if($value=='NOW()') $values .= ",".$value;
    else $values .= ',"'.$value.'"';
  }
  $name = substr($name,1);
  $values = substr($values,1);
  db_query("INSERT INTO ".$DB_Prefix."$table ($name) VALUES($values)");
  //echo("INSERT INTO $table ($name) VALUES($values)");
}

// Přepis řádku za nový //
function DB_Replace($table,$data)
{
  global $DB_Prefix;
  $name = '';
  $values = '';
  foreach($data as $key => $value)
  {
    $value = strtr($value,'"','\"');
    $name .= ",".$key;
    if($value=='NOW()') $values .= ",".$value;
    else $values .= ',"'.$value.'"';
  }
  $name = substr($name,1);
  $values = substr($values,1);
  db_query("REPLACE INTO ".$DB_Prefix."$table ($name) VALUES($values)");
  //echo("INSERT INTO $table ($name) VALUES($values)");
}

// Vložení nového řádku do databáze //
function DB_Update($table,$condition,$data)
{
  global $DB_Prefix;
  $name = '';
  $values = '';
  foreach($data as $key => $value)
  {
    $value = strtr($value,'"','\"');
    if($value!='NOW()') $value = '"'.$value.'"';
    $values .= ", ".$key."=".$value;
  }
  $values = substr($values,2);
  DB_Query("UPDATE ".$DB_Prefix."$table SET $values WHERE ($condition)");
  //echo("UPDATE $table WHERE($condition) SET ($values)");
}

?>