コード例 #1
0
ファイル: viewAdminEdit.php プロジェクト: jond02/PHP
function editView()
{
    global $connection;
    global $DBErrorMsg;
    $message = 'false';
    if (isset($_GET['ord']) && isset($_GET['up']) && isset($_GET['ty']) && isset($_GET['def'])) {
        $order = $connection->real_escape_string($_GET['ord']);
        $newName = $connection->real_escape_string($_GET['up']);
        $viewType = $connection->real_escape_string($_GET['ty']);
        $def = $connection->real_escape_string($_GET['def']);
        if (isset($_GET['id'])) {
            $viewId = $connection->real_escape_string($_GET['id']);
        } else {
            //create new view and return id
            $viewId = createView($viewType, $newName, $def);
            if (!is_int(intval($viewId))) {
                return;
            }
        }
        if ($order === '_same') {
            $query = generateQuery($newName, false, $def, $viewId);
        } elseif ($order === '_last') {
            //get max relOrder
            $relOrder;
            $relQ = "SELECT...";
            if ($result = $connection->query($relQ)) {
                while ($row = $result->fetch_assoc()) {
                    $relOrder = $row['ro'];
                }
                $relOrder += 1;
                $query = generateQuery($newName, $relOrder, $def, $viewId);
            } else {
                echo $DBErrorMsg;
            }
        } elseif ($order === '_first') {
            //get list of views to update
            $ordQ = "SELECT...";
            $adj = adjustOrder($ordQ, false);
            if ($adj === true) {
                //success, create query
                $query = generateQuery($newName, 1, $def, $viewId);
            }
        } elseif (is_int(intval($order))) {
            //find what rel_order should be based on the view id
            $ordQ = "SELECT...";
            if ($result = $connection->query($ordQ)) {
                while ($row = $result->fetch_assoc()) {
                    //if first view was selected then set to 1 instead of going to 0
                    if ($row['rel_order'] === 1) {
                        $relOrder = 1;
                    } else {
                        $relOrder = $row['rel_order'];
                    }
                    //get list of views to update
                    $ordQ = "SELECT...";
                    $adj = adjustOrder($ordQ, false);
                    if ($adj === true) {
                        //success, create query
                        $query = generateQuery($newName, $relOrder, $def, $viewId);
                    }
                }
            } else {
                echo $DBErrorMsg;
            }
        }
        //update view being edited
        if (isset($query)) {
            //send query
            if ($result = $connection->query($query)) {
                //adjust rel_order to fill in any gaps
                $ordQ = "SELECT...";
                $adj = adjustOrder($ordQ, true);
                if ($adj !== true) {
                    return;
                }
                //Success, send back id
                $message = $viewId;
            } else {
                echo $DBErrorMsg;
            }
        }
    }
    return $message;
}
コード例 #2
0
function crawl_all()
{
    include 'cc-settings.php';
    include_once 'util.php';
    $sth = $dbh->query("SELECT * FROM {$db_prefix}cast");
    if ($sth) {
        $urls = array();
        $xml = array();
        $GLOBALS['casts'] = array();
        foreach ($sth as $row) {
            array_push($urls, $row['URL']);
            $cache = json_decode($row['XML']);
            array_push($xml, $cache);
            $cast = array("id" => $row['CastID'], "url" => $row['URL']);
            if (isset($cache->etag)) {
                $cast["etag"] = $cache->etag;
            }
            array_push($GLOBALS['casts'], $cast);
        }
        $sth = $dbh->query("SELECT GUID FROM {$db_prefix}episode");
        $GLOBALS['guids'] = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
        $dbh->exec("UPDATE {$db_prefix}cast SET crawlts=" . time());
        $t = microtime(true);
        $feeds = multiHTTP($urls);
        $GLOBALS['download_time'] = microtime(true) - $t;
        $size_downloaded = 0;
        foreach ($feeds as $feed) {
            $size_downloaded += strlen($feed);
        }
        $size_downloaded /= 1024 * 1024;
        echo "Downloaded " . sizeof($feeds) . " feeds, {$size_downloaded} MB in " . $GLOBALS['download_time'] . " seconds\n";
        $i = 0;
        $GLOBALS['cast_data'] = array();
        $dbh->beginTransaction();
        $sth = $dbh->prepare("UPDATE {$db_prefix}cast SET xml=? WHERE url=?");
        foreach ($feeds as $feed) {
            echo "#" . ($i + 1) . " " . $urls[$i] . "\n";
            if ($feed != null) {
                $header = array();
                foreach (explode("\r\n", substr($feed, 0, strpos($feed, "\r\n\r\n"))) as $line) {
                    $line = explode(":", $line);
                    if (sizeof($line) > 1) {
                        $header[$line[0]] = trim($line[1]);
                    } else {
                        $status = explode(" ", $line[0])[1];
                    }
                }
                if ($status == 200) {
                    $data = substr($feed, strpos($feed, "\r\n\r\n") + 4);
                    $cache = array();
                    if (array_key_exists("ETag", $header)) {
                        $cache["etag"] = $header["ETag"];
                    }
                    $hash = md5($data);
                    $cache["hash"] = $hash;
                    if (strcmp($xml[$i]->hash, $hash) != 0) {
                        $sth->execute(array(json_encode($cache), $urls[$i]));
                        $t = microtime(true);
                        crawl($urls[$i], $data);
                        $GLOBALS['crawl_time'] += microtime(true) - $t;
                    }
                }
            } else {
                echo "Feed failed downloading\n";
            }
            $i++;
        }
        $push_this = $GLOBALS['push_this'];
        $t = microtime(true);
        $n = 250;
        for ($i = 0; $i < sizeof($push_this); $i += $n * 4) {
            $vals = array_slice($push_this, $i, $n * 4);
            $sth = $dbh->prepare(generateQuery(sizeof($vals) / 4));
            $sth->execute($vals);
        }
        $GLOBALS['insert_time'] = microtime(true) - $t;
        echo sizeof($push_this) / 4 . " rows inserted\n";
        $sth = $dbh->prepare("UPDATE {$db_prefix}cast SET content=? WHERE castid=?");
        foreach ($GLOBALS['cast_data'] as $id => $data) {
            $sth->execute(array($data, $id));
        }
        $dbh->commit();
        echo "download " . $GLOBALS['download_time'] . " sec\nparse " . $GLOBALS['parse_time'] . " sec\ncrawl " . $GLOBALS['crawl_time'] . "sec\ninsert " . $GLOBALS['insert_time'] . " sec";
    }
}
コード例 #3
0
ファイル: api.php プロジェクト: Cyriaqu3/SQL-to-JSON
            }
        }
    }
    // ADDING THE JOINED TABLES
    $queryFilter = "";
    $queryTableSing = substr($queryTable, 0, -1);
    if (property_exists($filter, $qTable)) {
        if (property_exists($filter->{$qTable}, 'join')) {
            $f = $filter->{$qTable}->join;
            $c = 0;
            foreach ($f as $value) {
                $joinTableNameSing = substr($value, 0, -1);
                // subtitles -> subtitle used for model.json
                $queryWhere = "WHERE " . $queryTableSing . "_id = " . $r['id'];
                $queryFilter = generateFilter($joinTableNameSing);
                $q = generateQuery($queryFilter, $value, $queryWhere, "", "");
                $c = $db->query($q);
                if ($c) {
                    $r[$value] = array();
                    while ($t = $c->fetch(PDO::FETCH_ASSOC)) {
                        array_push($r[$value], $t);
                    }
                }
            }
        }
    }
    array_push($return[$qTable], $r);
    $return['success'] = true;
}
if ($return['count'] == 0) {
    $return['success'] = true;
コード例 #4
0
    $question = $_POST['_q_' . $key];
    $answer = $_POST['_a_' . $key];
    if (empty($question)) {
        if ($suq_id) {
            $delete_suq_id[] = $suq_id;
        }
        continue;
    }
    $suq_sort++;
    $value = array('su_id' => $su_id, 'suq_id' => $suq_id, 'suq_sort' => $suq_sort, 'suq_category' => $category, 'suq_type' => $type, 'suq_max_select' => $max_select, 'suq_question' => $question, 'suq_enable_etc' => is_null($etc) ? 'disabled' : 'enabled');
    for ($ak = 0; $ak < 10; $ak++) {
        $a = $answer[$ak];
        $value['suq_answer_' . ($ak + 1)] = $a;
    }
    array_push($values, $value);
}
foreach ($values as $row) {
    $condition = null;
    if ($row['suq_id']) {
        $condition = array('suq_id' => $row['suq_id']);
    } else {
        $row['suq_created'] = G5_TIME_YMDHIS;
    }
    $sql = generateQuery($row, $g5['surveys_q_table'], null, $condition);
    sql_query($sql);
}
if (count($delete_suq_id) > 0) {
    sql_query("delete from {$g5['surveys_q_table']} where suq_id in (" . implode(',', $delete_suq_id) . ")");
}
surveys_count_update($su_id);
goto_url('./questions.php?su_id=' . $su_id);
コード例 #5
0
<?php

$sub_menu = '700600';
include_once './_common.php';
auth_check($auth[$sub_menu], "w");
$values = array('su_id' => $su_id, 'suc_name' => $suc_name, 'suc_summary' => $suc_summary, 'suc_created' => G5_TIME_YMDHIS);
$condition = null;
if (isset($suc_id) && $suc_id > 0) {
    $condition = array('suc_id' => $suc_id);
}
$sql = generateQuery($values, $g5['surveys_c_table'], null, $condition);
sql_query($sql, true);
goto_url('./index.php?su_id=' . $su_id);