Compare commits

...

3 Commits

Author SHA1 Message Date
Dusk e6f541198b Test 2021-12-10 23:54:03 +01:00
Dusk 6c0a6bc500 Get Messages 2021-12-10 23:53:41 +01:00
Dusk 6538ccd525 Get Messages WIP 2021-12-10 23:04:55 +01:00
2 changed files with 56 additions and 12 deletions

View File

@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ca"> <html lang="ca">
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8"/>
<title>Guestbook</title> <title>Guestbook</title>
</head> </head>
<body> <body>
hola Test
</body> </body>
</html> </html>

View File

@ -1,15 +1,59 @@
<?php <?php
createDB(); $db = createDB();
$test = getMessages($db, ['id_user' => 1]);
var_dump($test);
function createDB() function createDB($db_name = 'guestbook.db'): SQLite3 {
{ // Can't create table if it already exists
$db = new SQLite3('guestbook.db'); $exists = file_exists($db_name);
$db->exec("CREATE TABLE user
(id_user INTEGER PRIMARY KEY, username TEXT NOT NULL UNIQUE, password TEXT)"); $db = new SQLite3($db_name);
$db->exec("CREATE TABLE message
(id_msg INTEGER PRIMARY KEY, id_user INT, content TEXT NOT NULL, if(!$exists) {
FOREIGN KEY (id_user) REFERENCES user (id_user))"); $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;
} }
function getMessages(SQLite3 $db, array $filter = [], int $limit = 25) {
// Apply filters
$append_string = '';
$verb = 'WHERE';
foreach($filter as $key => $value) {
$to_append = match($key) {
'id_user' => "$verb $key = :$key",
// TODO
};
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->bindParam($key, $value);
}
var_dump($statement);
return $statement->execute()->fetchArray(SQLITE3_ASSOC);
}