I am fairly new to PHP/SQL I have been lightly playing with it for a year or so and I decided to start getting into it more.
First question I guess would be, is inserting into web design. Is there ways to place it so I am not putting in a block of code more like one line through an include? I would like it so a admin user database table isn’t coded in my home.php. I am probably asking super simple questions I just don’t like having the below in my code and it getting hard to find things.
<div class="w3-card w3-col s3 w3-light-grey w3-border w3-padding">
<h4 class="w3-center w3-teal">User Database</h4>
<table class="w3-table-all">
<th>Name</th>
<th>Email</th>
<th>Status</th>
<?php
$conn = mysqli_connect("localhost", "root", "", "registration");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT username, email, user_type FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["username"] . "</td><td>"
. $row["email"]. "</td><td>" . $row['user_type'] . "</td></tr>";
}
echo "</table>";
} else { echo "0 results"; }
$conn->close();
?>
</table>
</div>
Advertisement
Answer
The simplest solution is to move the PHP code to another file say “helper_functions.php”. So the result would look something like this :
helpers.php
<?php
function print_rows(){
// Your code goes here
}
?>
And in your view file just include the helpers file and call the function like so :
<div class="w3-card w3-col s3 w3-light-grey w3-border w3-padding">
<h4 class="w3-center w3-teal">User Database</h4>
<table class="w3-table-all">
<th>Name</th>
<th>Email</th>
<th>Status</th>
<?php
require_once("helper_functions.php");
print_rows();
?>
</table>
</div>
This is by no means the best solution. If you want to write much cleaner, seperated and organised code, I suggest you read about MVC architecture.