/**
 * kreas novan datumbaztabelon.
 *
 * @param string $tabelnomo
 * @param array $kamporeguloj  array() el array(), pri kies
 *        formato vidu ĉe {@link donu_kampo_sql()}.
 * @param array $sxlosiloj  listo de ŝlosiloj/indeksoj. De la formo
 *           nomo => detaloj,
 *          kie 'nomo =>' povas esti forlasita (por lasi la sistemon
 *                                           mem krei la nomon).
 *          La nomo 'primary' indikas la ĉefan ŝlosilon.
 *          Se tiu ne estas donita, ni kreas la ĉefan ŝlosilon el "(`ID`)".
 *
 *          detaloj povas esti ĉeno (nomo de kolumno)
 *          aŭ array de tiaj nomoj. En la lasta kazo, se
 *               detaloj[0] == 'index', ĝi estos forprenita
 *          kaj indikas, ke ni havas ne-unikan indekson.
 * @param string $komento
 * @param string $tipo se donita, alia ol la defaŭlta tabeltipo 
 *       (ekzemple MEMORY por nur-memoraj tabeloj).
 */
function kreu_tabelon($tabelnomo, $kampoj, $sxlosiloj = null, $komento = "", $tipo = null)
{
    $sql = "CREATE TABLE IF NOT EXISTS `" . traduku_tabelnomon($tabelnomo) . "` (\n  ";
    $sqlkampoj = array();
    foreach ($kampoj as $kampopriskribo) {
        if ($kampopriskribo) {
            $sqlkampoj[] = donu_kampo_sql($kampopriskribo, $tabelnomo);
        }
    }
    $primary = "ID";
    if (!$sxlosiloj) {
        $sxlosiloj = array();
    }
    foreach ($sxlosiloj as $nomo => $valoro) {
        debug_echo("<!-- nomo: " . $nomo . ", valoro: " . var_export($valoro, true) . " -->");
        if ('primary' === $nomo) {
            debug_echo("<!-- primary! -->");
            if (is_array($valoro)) {
                $primary = implode('`, `', $valoro);
            } else {
                $primary = $valoro;
            }
        } else {
            $unique = true;
            if (is_array($valoro)) {
                if ($valoro[0] == 'index') {
                    $unique = false;
                    array_shift($valoro);
                }
                $valoro = implode('`, `', $valoro);
            }
            debug_echo("<!-- valoro: " . var_export($valoro, true) . " -->");
            $sxlosilfrazo = ($unique ? "UNIQUE KEY " : "KEY ") . (is_int($nomo) ? '' : "`{$nomo}` ") . "(`" . $valoro . "`)";
            $sqlkampoj[] = $sxlosilfrazo;
        }
    }
    debug_echo("<!-- sqlkampoj: " . var_export($sqlkampoj, true) . "-->");
    $sqlkampoj[] = "PRIMARY KEY (`{$primary}`)";
    $sql .= implode(",\n  ", $sqlkampoj);
    $sql .= "\n) ";
    if (CHARSET_DB_SUPPORT) {
        $sql .= "DEFAULT CHARSET=utf8 COLLATE=utf8_esperanto_ci ";
    }
    if ($tipo) {
        $sql .= "\n   TYPE='" . $tipo . "'";
    }
    if ($komento) {
        $sql .= "\n   COMMENT='" . addslashes($komento) . "'";
    }
    $sql .= ";\n";
    // TODO
    faru_SQL($sql);
}
/**
 * donas SQL-esprimon por forigo el datumbazo.
 *
 * 
 * @param array|string $restriktoj_normalaj Restrikto, kiujn kampojn ŝanĝi.
 *             - array en la formo
 *                     kampo => valoro
 *                <em>kampo</em> estu valida kamponomo de la tabelo,
 *                "valoro" estu iu ajn php-valoro, kies
 *                   string-versio (+ '...') estu taŭga kiel SQL-valoro.
 *				 La funkcio ŝanĝas nur tiujn liniojn, kiuj
 *               enhavas en la donita kampo la donitan valoron.
 *
 *             -  Kiam oni donas ne array(), sed nur unu valoron,
 *               tio estas ekvivalenta al array('ID' => valoro).
 * @param array $restriktoj_sesio - ...
 * @return sqlstring
 */
function datumbazforigo($tabelnomo, $restriktoj_normalaj, $restriktoj_sesiaj = "")
{
    if (!EBLAS_SKRIBI) {
        return "SELECT 'ne eblas sxangxi la datumbazon'";
    }
    $sql = "DELETE FROM " . traduku_tabelnomon($tabelnomo) . " WHERE " . donu_where_kondicxon($restriktoj_normalaj, $restriktoj_sesiaj);
    if (DEBUG) {
        echo "<!-- forigo-ordono: {$sql} -->";
    }
    return $sql;
}
STARTALLOPEN = 0; //replace 0 with 1 to show the whole tree

// konservu la staton
PRESERVESTATE = 1;

ICONPATH = 'grafikajhoj/' //change if the gif's folder is a subfolder, for example: 'images/'

    <?
$trovitaj = array();
$patroj = array();
$nombroj = array();
?>
<?
$db = konektu();
$tabelo = $agordoj["db_tabelo"];
$temp_tabelo = traduku_tabelnomon("temp_tradukoj");

$chefa = $agordoj["chefa_lingvo"];
if ($montru == "chion") {
    $query = "SELECT dosiero, COUNT(cheno) AS nombro FROM $tabelo WHERE iso2='$chefa' GROUP BY dosiero";
 } else if ($montru == "retradukendajn") {
    $query = "SELECT dosiero, COUNT(cheno) AS nombro FROM $tabelo WHERE iso2='$lingvo' AND stato=1 GROUP BY dosiero";
 } else if ($montru == "tradukendajn" or $montru == "ambau") {


    //    $trad_tabelo = traduku_tabelnomon("tradukoj");


    sql_faru("TRUNCATE $temp_tabelo");

    // kreu liston de cxiuj esperantaj chenoj
entajpbutono(" ", numero, $numero, 20, 20, " 20 pag^oj");
entajpbutono(" ", numero, $numero, 999, 999, " c^iuj");
entajpbutono("</p><p>", kio, $kio, "sendu", sendu, "Sendu retajn konfirmilojn.");
//TODO:? jau, auch dies kann man aus der DB ziehen.
// [respondo de Martin:] Fällt mir im Moment nicht ein. Soll womöglich bedeuten, daß der Button nur erscheint, wenn der betreffende auch reta ausgewählt wurde.
entajpbokso("<BR>", eksendu, $eksendu, P, P, "Vere eksendu ilin al la partoprenantoj. (Alikaze al " . funkciuladreso("admin") . ")");
eoecho("<br/>Atentu: Tiu c^i funkcio (amasa sendado da retmesag^oj) ankorau^ ne estas bone testita - Martin ne uzis g^in la lastaj jaroj. -- Pau^lo</p>");
entajpbokso("<p>", savu, $savu, J, J, "Savu ke vi premis/sendis en la partoprendatumoj");
entajpbokso("<BR>", sen, $sen, s, s, "malplenaj folioj</p>");
entajpbutono("<p>", 'kio', $kio, "adres", adres, "elprintu adresaron ");
entajpbokso("(", 'bunta', $bunta, 'JES', 'JES', "buntan,", "kutima");
entajpbokso(" ", 'granda', $granda, 'JES', 'JES', "grandan (por korekti))");
entajpbutono("<p>", 'kio', $kio, "gepatra_permeso", "gepatra_permeso", "elprintu malplenan gepatran permesilon");
entajpbutono("(", 'perm_tipo', $perm_tipo, "ina", "ina", "ina (filino) ");
entajpbutono("|", 'perm_tipo', $perm_tipo, "vira", "vira", "vira (filo) )</p>");
$dosiernomo = '../../../phplibraro/tmp/' . traduku_tabelnomon('partoprenantoj') . '.sql.gz';
if (file_exists($dosiernomo)) {
    $dato = "de " . date("Y-m-d H:i", filemtime($dosiernomo) . ".");
} else {
    $dato = "ne trovebla ({$dosiernomo})!";
}
entajpbutono("<p>", "kio", $kio, "backup", "backup", "Kreu sekurkopion de la datumbazo. (La lasta estas {$dato})</p>");
$dosiernomo = '../../../phplibraro/tmp/projekto-' . $tabelnomprefikso . '.sql.gz';
if (file_exists($dosiernomo)) {
    $dato = "de " . date("Y-m-d H:i", filemtime($dosiernomo) . ".");
} else {
    $dato = "ne trovebla ({$dosiernomo})!";
}
entajpbutono("<p>", "kio", $kio, "backup_is", "backup_is", "Kreu sekurkopion de la datumbazo (nur IS). (La lasta estas {$dato})</p>");
if (rajtas('teknikumi')) {
    entajpbutono("<p>", "kio", $kio, "backup_programo", "backup_programo", "Kreu sekurkopion de la programo.</p>");
Beispiel #5
0
if (!function_exists("konektu")) {
    /**
     * konektas al la datumbazo kaj redonas la konekto-objekton.
     *
     * @return resource MySQL-konekto-objekto.
     */
    function konektu()
    {
        return malfermu_datumaro();
    }
}
// require_once($GLOBALS['prafix'] ."/konfiguro/moduso.php");
// require_once($GLOBALS['prafix'] ."/konfiguro/datumaro.php");
// require_once($GLOBALS['prafix'] . "/konfiguro/opcioj.php");
// require_once($GLOBALS['prafix'] . "/iloj/iloj_sql.php");
$GLOBALS['agordoj']['db_tabelo'] = traduku_tabelnomon("tradukoj");
/*
    eval('
    function konektu()
    {
        global $agordoj;
        static $result;
        if ($result) return $result;

        $result = mysql_pconnect($agordoj["db_host"], $agordoj["db_uzanto"], $agordoj["db_pasvorto"]);
        if (!$result)
            return false;
        if (!mysql_select_db($agordoj["db_nomo"]))
            return false;
        mysql_query("set names utf8"); 
        return $result;
function forigu_el_datumbazo($tabelnomo, $id)
{
    if (!EBLAS_SKRIBI) {
        return " SELECT 'Datenbank darf nicht ge&auml;ndert werden' ";
    }
    $sql = "DELETE FROM " . traduku_tabelnomon($tabelnomo) . " WHERE ID = '" . $id . "'";
    if (DEBUG) {
        echo "<!-- forigo-ordono: {$sql} -->";
    }
    return sql_faru($sql);
}
 /**
  * konstruilo.
  * @param array $kamponomoj listo de kampoj de la tabelo,
  *          en la sama sinsekvo ili poste aperu en la linioj.
  * @param string $tabelnomo (abstrakta) nomo de la datumbaztabelo
  *      tabelo.
  * @param int $limo  maksimuma grandeco de SQL-ordono en bajtoj.
  *      Ni kreos plurajn ordonojn, po maksimume tiom granda.
  *      (Se unuopa linio estas jam tro granda, ĝi tamen restos
  *       ne-dividita.)
  */
 function SqlAldonilo($kamponomoj, $tabelnomo, $limo = 1000)
 {
     $this->kamponombro = count($kamponomoj);
     $this->limo = $limo;
     $this->komenca_sql = "INSERT INTO `" . traduku_tabelnomon($tabelnomo) . "`\n" . "    (`" . implode('`, `', $kamponomoj) . "`) \n" . "  VALUES \n    ";
     $this->reset();
 }