I need help on my code. When data is entered on my site, it does not show up in the mySQL data table. The insert function that I used might be the problem, but I cannot figure out how to get it to actually insert and show up in my table in my database. Can someone please guide me in the right direction with my code?
<?php
session_start();
include("db_connect.php");
if(isset($_POST['submit'])){
$item = $_POST['item'];
if(empty($item)) {
$errors = "you must enter something";
}
else{
mysqli_query("INSERT INTO a4_todolist (item) VALUES ('$item')");
header('location: index.php');
}
}
$a4_todolist = mysqli_query("SELECT * FROM a4_todolist");
?>
<!DOCTYPE html>
<html>
<head>
<title> Assignment 4 - To Do List </title>
<link rel ="stylesheet" type ="text/css" href="style.css">
</head>
<body>
<div class "head">
<h2> To Do </h2>
</div>
<form method= "POST" action = "index.php">
<?php if (isset($errors)) { ?>
<p><?php echo $errors; ?></p>
<?php } ?>
Item <input type = "text" name= "item" class="item_input">
Author <input type = "text" name= "author" class="author_input">
<button type = "submit" class="add-btn" name="submit"> Add Task
</button>
</form>
<table>
<tbody>
<?php while ($row = mysqli_fetch_array($a4_todolist)) { ?>
<tr>
<td class="id"> <?php print $row['id']; ?> </td>
<td class="item"> <?php echo $row['item']; ?> </td>
</tr>
<?php } ?>
</tbody>
</table>
</thread>
</body>
</html>
mysqli_querywould have thrown an error about parameter 1 being a string and not a mysqli connection. Additional you are open to SQL injections and need to check the result of that query call.mysqli_query("INSERT INTO a4_todolist (item) VALUES ('$item')");?