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