예제 #1
0
<?php

require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/config/config.php';
$dbConn = new \Simplon\Mysql\Mysql($config['db']['host'], $config['db']['user'], $config['db']['password'], $config['db']['database']);
$result = ['gender' => [], 'age' => [], 'top5_interest' => []];
$gender_distribution = $dbConn->fetchRowMany('SELECT sex, COUNT(*) as count FROM members GROUP BY sex ORDER BY count DESC;');
$gender_id_to_string = [1 => 'female', 2 => 'male', 0 => '?'];
foreach ($gender_distribution as $gender) {
    $result['gender'][$gender_id_to_string[$gender['sex']]] = $gender['count'];
}
$date_format = 'Y-m-d';
$column_name = '`birth_date`';
$age_dates = ['<=10' => "{column} >= '" . date($date_format, strtotime("-10 years", time())) . "'", '11-20' => "{column} >= '" . date($date_format, strtotime("-20 years", time())) . "' AND {column} < '" . date($date_format, strtotime("-10 years", time())) . "'", '21-30' => "{column} >= '" . date($date_format, strtotime("-30 years", time())) . "' AND {column} < '" . date($date_format, strtotime("-20 years", time())) . "'", '>31' => "{column} < '" . date($date_format, strtotime("-30 years", time())) . "'", '?' => "{column} IS NULL"];
$total = 0;
foreach ($age_dates as $name => $condition) {
    $query = str_ireplace('{column}', $column_name, "SELECT COUNT(*) as count FROM `members` WHERE " . $condition);
    $age_distribution = $dbConn->fetchRow($query);
    $result['age'][$name] = $age_distribution['count'];
}
$interests_distribution = $dbConn->fetchRowMany('SELECT interest, COUNT( * ) AS count FROM interests GROUP BY interest ORDER BY count DESC LIMIT 0 , 6');
$interests = [];
foreach ($interests_distribution as $interest) {
    if ($interest['interest'] == 'music') {
        continue;
    }
    $interests[] = $interest['interest'];
}
$result['top5_interest'] = $interests;
print_r(json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
예제 #2
0
    foreach ($members['items'] as $member) {
        $birth_date = null;
        if (isset($member['bdate'])) {
            $bdateParts = explode('.', $member['bdate']);
            $birth_date = count($bdateParts) == 3 ? implode('-', array_reverse($bdateParts)) : null;
        }
        $putMemeber = ['vk_id' => $member['id'], 'sex' => $member['sex'], 'birth_date' => $birth_date];
        try {
            $dbConn->insert('members', $putMemeber);
        } catch (Exception $e) {
        }
    }
}
$dbConn->executeSql('TRUNCATE interests;');
$request_count = 200;
$members_count = $dbConn->fetchRow('SELECT count(*) as c from members;')['c'];
$iterations_count = $members_count / $request_count;
for ($i = 0; $i < $iterations_count; $i++) {
    echo 'Fetching users ' . $request_count * $i . ' - ' . ($request_count * $i + $request_count) . PHP_EOL;
    $members = $dbConn->fetchRowMany('SELECT vk_id from members ORDER by vk_id LIMIT :skip, :limit;', ['skip' => $request_count * $i, 'limit' => $request_count]);
    $vk_ids = [];
    foreach ($members as $member) {
        $vk_ids[] = $member['vk_id'];
    }
    $vk_ids_string = implode(',', $vk_ids);
    $users = $vk->api('users.get', ['user_ids' => $vk_ids_string, 'fields' => 'interests']);
    if (!count($users)) {
        echo 'error 1 ';
        var_dump($users);
        var_dump($vk_ids_string);
        exit;
예제 #3
0
var_dump($results);
// ############################################
echo '<h3>fetchValueMany</h3>';
$results = $dbh->fetchColumnMany($query, $conds);
echo '<h4>total rows: ' . $dbh->getRowCount() . '</h4>';
var_dump($results);
// ############################################
echo '<h3>fetchValueManyCursor</h3>';
$counter = 0;
foreach ($dbh->fetchColumnManyCursor($query, $conds) as $result) {
    echo '<h4>#' . ++$counter . ' cursor</h4>';
    var_dump($result);
}
// ############################################
echo '<h3>fetch</h3>';
$results = $dbh->fetchRow($query, $conds);
var_dump($results);
// ############################################
echo '<h3>fetchMany</h3>';
$results = $dbh->fetchRowMany($query, $conds);
var_dump($results);
// ############################################
echo '<h3>fetchManyCursor</h3>';
$counter = 0;
foreach ($dbh->fetchRowManyCursor($query, $conds) as $result) {
    echo '<h4>#' . ++$counter . ' cursor</h4>';
    var_dump($result);
}
// ############################################
echo '<h3>execute sql: truncate</h3>';
$response = $dbh->executeSql('TRUNCATE import_dump');
예제 #4
0
<?php

require 'core.php';
session_start();
$config = array('host' => 'localhost', 'user' => 'root', 'password' => 'adminadmin', 'database' => 'groceryList', 'fetchMode' => \PDO::FETCH_ASSOC, 'charset' => 'utf8', 'port' => 3306, 'unixSocket' => null);
$dbConn = new \Simplon\Mysql\Mysql($config['host'], $config['user'], $config['password'], $config['database']);
$id = $dbConn->fetchRow("SELECT * FROM users WHERE id = " . $_SESSION["userid"]);
if ($_SESSION['userid'] == $id["id"]) {
    header("Location: groceryList.php");
}
session_unset();
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Grocery List</title>
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <meta name="author" content="@shavez00">
        <link href="css/style.css" rel="stylesheet">
    </head>

    <body>

        <div class="wrapper">
            <div id="main" style="padding:50px 0 0 0;">

                <!-- Form -->
                <form id="contact-form" action="groceryList.php" method="get">
                    <h3>Grocery List</h3></br>
                    <h3>MVP</h3>