Jeg er igang med et afsluttende project, hvor jeg er igang med at bygge en hjemmeside, som skal hjælpe virksomheder med at holde styr på interne dokumenter. Jeg benytter mig af PHP og MySQL til projektet, og mangler blot den sidste del. Jeg har lavet en login system som fungere ganske glimrende, hvor login informationerne fra brugeren bliver opbevaret i mit "users" table som består af følgende:
Når brugeren er logget ind, har de så muligheden for at uploade et dokument som f.eks. pdf-filer og word-filer. Mit "files" table består af følgende:idUsers int(11) PRIMARY KEY NOT NULL,
uidUsers TINYTEXT NOT NULL,
emailUsers TINYTEXT NOT NULL,
pwdUsers LONGTEXT NOT NULL,
Som det kan ses er "usersId" foreign key til primary keyen i mit users table "idUsers". Så der er en relationen de to imellem. Det betyder også at usersId kommer med i databasen alt efter hvilken bruger der er logget ind.id int(11) PRIMARY KEY NOT NULL,
usersId int(11) - (Foreign key til idUsers)
name varchar(255) NOT NULL,
title varchar(255) NOT NULL,
forfatter varchar(255)
size int(11),
download int(11)
Jeg har så lavet en søgefunktion, hvor brugeren skal kunne søge på navn, titel og forfatter. Det virker også ganske glimrende. Problemet opstår i og med, at brugeren kun skal have mulighed for at se de dokumenter som er blevet uploaded af dem selv. Så jeg skal på en eller anden måde kun have "spyttet" de resultater ud som stemmer overens med den $session jeg er i, alt efter hvilken bruger der er logget ind. Men det er åbentbart nemmere sagt end gjort, og derfor spørger jeg jer derude til råds.
search.php
Kode: Vælg alt
<?php
$usersId = $_SESSION['userId'];
$output = '';
if (isset($_GET['search']) && $_GET['search'] !== ' ') {
$searchingq = $_GET['search'];
$q = mysqli_query($conn, "SELECT * FROM files WHERE id AND name LIKE '%$searchingq%' OR title LIKE '%$searchingq%' OR forfatter LIKE '%$searchingq%' AND usersId = '.$usersId.'") or die(mysqli_error($conn));
mysqli_stmt_bind_param($id, $userId, $name, $title, $forfatter, $download);
$c = mysqli_num_rows($q);
if($c == 0) {
$output = '<p>No search results for: "' .$searchingq. '"</p>';
} else {
while($row = mysqli_fetch_array($q)) {
$name = $row['name'];
$title = $row['title'];
$forfatter = $row['forfatter'];
$download = $row['downloads'];
$output .=
'
<tbody class="tableBody">
<tr>
<td>' .$name. '</td>
<td>' .$title. '</td>
<td>' .$forfatter. '</td>
<td class="text-center"><a href="../uploads/'.$name.'" download="'.$name.'"><i class="fas fa-file-export"></i></a></td>
<td class="text-center"><a href="delete.inc.php?id='.$row['id'].'"><i class="fas fa-trash-alt"</a></td>
</tr>
</tbody>';
}
}
} else {
header("location: ./");
}
print("$output");
mysqli_close($conn);
?>