Get Messages
This commit is contained in:
parent
6538ccd525
commit
6c0a6bc500
|
@ -1,48 +1,59 @@
|
|||
<?php
|
||||
|
||||
createDB();
|
||||
$db = createDB();
|
||||
$test = getMessages($db, ['id_user' => 1]);
|
||||
var_dump($test);
|
||||
|
||||
function createDB($db_name = 'guestbook.db'): SQLite3 {
|
||||
// Can't create table if it already exists
|
||||
$exists = file_exists($db_name);
|
||||
|
||||
$db = new SQLite3($db_name);
|
||||
|
||||
if(!$exists) {
|
||||
$db->exec('CREATE TABLE user
|
||||
(id_user INTEGER PRIMARY KEY,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password TEXT)'
|
||||
);
|
||||
$db->exec('CREATE TABLE message
|
||||
(id_msg INTEGER PRIMARY KEY,
|
||||
id_user INT,
|
||||
content TEXT NOT NULL,
|
||||
date INT,
|
||||
FOREIGN KEY (id_user) REFERENCES user (id_user))'
|
||||
);
|
||||
}
|
||||
|
||||
function createDB(): SQLite3 {
|
||||
$db = new SQLite3('guestbook.db');
|
||||
$db->exec('CREATE TABLE user
|
||||
(id_user INTEGER PRIMARY KEY,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password TEXT)'
|
||||
);
|
||||
$db->exec('CREATE TABLE message
|
||||
(id_msg INTEGER PRIMARY KEY,
|
||||
id_user INT,
|
||||
content TEXT NOT NULL,
|
||||
date INT,
|
||||
FOREIGN KEY (id_user) REFERENCES user (id_user))'
|
||||
);
|
||||
return $db;
|
||||
}
|
||||
|
||||
// getMessages(['id' => 34, 'since' => 383489289424])
|
||||
|
||||
function getMessages(SQLite3 $db, int $limit = 25, array $filter = []) {
|
||||
function getMessages(SQLite3 $db, array $filter = [], int $limit = 25) {
|
||||
// Apply filters
|
||||
$append_string = '';
|
||||
$verb = 'WHERE';
|
||||
|
||||
foreach ($filter as $key => $value) {
|
||||
foreach($filter as $key => $value) {
|
||||
$to_append = match($key) {
|
||||
'id_msg' => "$verb $key IN (:$key)",
|
||||
'id_user' => "$verb $key = :$key",
|
||||
// TODO
|
||||
};
|
||||
if ($to_append) {
|
||||
if($to_append) {
|
||||
$append_string .= " $to_append";
|
||||
$verb = 'AND';
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
$query = 'SELECT * FROM message' . $append_string;
|
||||
var_dump($query);
|
||||
|
||||
$statement = $db->prepare($query);
|
||||
|
||||
foreach ($filter as $key => $value) {
|
||||
$statement->bindValue($key, $value);
|
||||
foreach($filter as $key => $value) {
|
||||
$statement->bindParam($key, $value);
|
||||
}
|
||||
|
||||
return $statement->execute();
|
||||
var_dump($statement);
|
||||
return $statement->execute()->fetchArray(SQLITE3_ASSOC);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue