Cześć,
Mam problem z dodaniem id komentarza do id zgłoszenia tzn. po utworzeniu zgłoszenia z przypisanym id w bazie danych mogę wejść w jego zawartość i go zaktualizować i chciałbym dodać do tego możliwość dodawania komentarzy przez użytkownika. Problem w tym że nie za bardzo orientuję się jak zaciągnąć id zgłoszenia do sekcji komentarzy tak aby komentarze wyświetlały się w zgłoszeniu na którym zostały dodane.
Kod który udało mi się napisać:
<?php
include('config\constants.php');
include('config\db.php');
include('comments.php');
date_default_timezone_set('Europe/Warsaw');
if (isset($_GET['task_id'])) {
$task_id = $_GET['task_id'];
$sql = "SELECT * FROM tbl_task WHERE task_id = $task_id";
$res = mysqli_query($conn, $sql);
if ($res == true) {
$row = mysqli_fetch_assoc($res);
$task_name = $row['task_name'];
$task_description = $row['task_description'];
$list_id = $row['list_id'];
$priority = $row['priority'];
$deadline = $row['deadline'];
}
} else {
header('location:index.php');
}
echo $task_description;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Task Manager</title>
</head>
<body>
<h3>Update task</h3>
<form method="POST" action="">
<table>
<tr>
<td>Task name:</td>
<td><input type="text" name="task_name" value="<?php echo $task_name; ?>" require="requierd" /></td>
</tr>
<tr>
<td>Task Description:</td>
<td>
<textarea name="task_description">
<?php echo $task_description; ?>
</textarea>
</td>
</tr>
<tr>
<td>Select list:</td>
<td>
<select name="list_id">
<?php
$conn2 = new mysqli(LOCALHOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
//Zapytanie wyciagajace liste z db
$sql2 = "SELECT * FROM tbl_list";
$res2 = mysqli_query($conn2, $sql2);
if ($res2 == true) {
//wyświetl liste
//count rows
$count_rows2 = mysqli_num_rows($res2);
//Sprawdzanie czy lista jest dodana
if ($count_rows2 > 0) {
while ($row2 = mysqli_fetch_assoc($res2)) {
$list_id_db = $row2['list_id'];
$list_name = $row2['list_name'];
?>
<option <?php if ($list_id_db == $list_id) {
echo "selected='selected'";
} ?>; value=value="<?php echo $list_id_db; ?>"><?php echo $list_name; ?></option>
<?php
}
} else {
?>
<option <?php if ($list_id = 0) {
echo "selected='selected'";
} ?> value="0">None</option>p
<?php
}
}
?>
<option value=value="1">Doing</option>
</select>
</td>
</tr>
<tr>
<td>Priority:</td>
<td>
<select name="priority">
<option <?php if ($priority == "High") {
echo "selected='selected'";
} ?> value="High">High</option>
<option <?php if ($priority == "Medium") {
echo "selected='selected'";
} ?> value="Medium">Medium</option>
<option <?php if ($priority == "Low") {
echo "selected='selected'";
} ?> value="Low">Low</option>
</select>
</td>
</tr>
<tr>
<td>Deadline:</td>
<td><input type="date" name="deadline" value="<?php echo $deadline; ?>"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="update"></td>
</tr>
</table>
</form>
<?php
if (isset($_POST['submit'])) {
//Dane z form
$task_name = $_POST['task_name'];
$task_description = $_POST['task_description'];
$list_id = $_POST['list_id'];
$priority = $_POST['priority'];
$deadline = $_POST['deadline'];
$conn3 = new mysqli(LOCALHOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
$sql3 = "UPDATE tbl_task SET
task_name = '$task_name',
task_description = '$task_description',
priority = '$priority',
deadline = '$deadline'
WHERE
task_id = $task_id
";
$res3 = mysqli_query($conn3, $sql3);
}
?>
<?php
echo "<form method='POST' action='" . setComment($conn) . "'>
<input type='hidden' name='user_id' value='anonymous'>
<input type='hidden' name='date' value='" . date('Y-m-d H:i:s') . "'>
<textarea name='msg'> </textarea><br></br>
<button type='submit' name='commentSubmit'>Dodaj</button>
</form>";
?>
</body>
</html>
Funkcja z setComment:
<?php
function setComment($conn)
{
if (isset($_POST['commentSubmit'])) {
$user_id = $_POST['user_id'];
$date = $_POST['date'];
$msg = $_POST['msg'];
$sql = "INSERT INTO msg (user_id, date, msg, ) VALUES ('$user_id', '$date', '$msg' ) ";
$res = $conn->query($sql);
}
}
Zgłoszenia jak i komentarze dodają się poprawnie do swoich tabel w bazie. Sam powyższy kod wymaga jeszcze wielu poprawek.