1

I am trying to run a query that will display in my browser when I click the button, but instead the results are just displayed from the beginning. I have the button set to post and my php file as the action but it seems to just run the code from the beginning. Here is what I have:

<?php
$host = "localhost";
$db = "cis475";
$user = "root";
$pw = "";


$conn = new mysqli ($host, $user, $pw, $db);
if($conn->connect_error) die($conn->connect_error);

$readAllQuery = "SELECT * FROM enrollment JOIN course ON enrollment.CourseID 
= course.CourseID JOIN student ON enrollment.StudentID = student.StudentID";

    $result = $conn->query($readAllQuery);
    if (!$result) die($conn->error);

    echo "<table border='1'>";
    echo "<tr><td>EnrollmentID</td><td>Grade</td><td>EnrollmentSemester</td> 
   <td>CourseID</td><td>StudentID</td><td>Title</td><td>Credits</td> 
   <td>LastName</td><td>FirstMidName</td></tr>";
    while ($row = mysqli_fetch_assoc($result)){
        echo "<tr><td>{$row['EnrollmentID']}</td><td>{$row['Grade']}</td> 
   <td>{$row['EnrollmentSemester']}</td><td>{$row['CourseID']}</td><td> 
   {$row['StudentID']}</td><td>{$row['Title']}</td><td>{$row['Credits']} 
   </td> 
   <td>{$row['LastName']}</td><td>{$row['FirstMidName']}</td></tr>";

    }
echo "</table>";

?>

<form method='post' action='readAll.php'>

<input type='submit' name='submit' value='Show All Enrollments'>

</form>

2 Answers 2

1

You need to see if 'something' is there (in this case, all you have is the submit) and then do the display....

<?php
if($_POST['submit']){
    $host = "localhost";
    $db = "cis475";
    $user = "root";
    $pw = "";

    $conn = new mysqli ($host, $user, $pw, $db);
    if($conn->connect_error) die($conn->connect_error);

    $readAllQuery = "SELECT * FROM enrollment JOIN course ON enrollment.CourseID = course.CourseID JOIN student ON enrollment.StudentID = student.StudentID";

    $result = $conn->query($readAllQuery);
    if (!$result) die($conn->error);

    echo "<table border='1'>";
    echo "<tr><td>EnrollmentID</td><td>Grade</td><td>EnrollmentSemester</td> 
    <td>CourseID</td><td>StudentID</td><td>Title</td><td>Credits</td> 
    <td>LastName</td><td>FirstMidName</td></tr>";
    while ($row = mysqli_fetch_assoc($result)){
        echo "<tr><td>{$row['EnrollmentID']}</td><td>{$row['Grade']}</td> 
        <td>{$row['EnrollmentSemester']}</td><td>{$row['CourseID']}</td><td> 
        {$row['StudentID']}</td><td>{$row['Title']}</td><td>{$row['Credits']} 
        </td><td>{$row['LastName']}</td><td>{$row['FirstMidName']}</td></tr>";
    }
    echo "</table>";
}
?>

<form method='post' action='readAll.php'>

<input type='submit' name='submit' value='Show All Enrollments'>

</form>
Sign up to request clarification or add additional context in comments.

Comments

0

Any code present in inside the program file will run upon execution, this is true for all languages, unless it is wrapped inside an if or any other conditional statements; in which case the code enclosed in the conditional statement will only be executed if the condition is true.

And thus to solve your issue, you'll need a conditional statement that checks if the form was submitted or not and if it was then execute the code that follows-

if(isset($_POST['submit'])){
    $host = "localhost";
    $db = "cis475";
    $user = "root";
    $pw = "";

    $conn = new mysqli ($host, $user, $pw, $db);
    if($conn->connect_error) die($conn->connect_error);

    $readAllQuery = "SELECT * FROM enrollment JOIN course ON enrollment.CourseID = course.CourseID JOIN student ON enrollment.StudentID = student.StudentID";

    $result = $conn->query($readAllQuery);
    if (!$result) die($conn->error);

    echo "<table border='1'>";
    echo "<tr><td>EnrollmentID</td><td>Grade</td><td>EnrollmentSemester</td> 
    <td>CourseID</td><td>StudentID</td><td>Title</td><td>Credits</td> 
    <td>LastName</td><td>FirstMidName</td></tr>";
    while ($row = mysqli_fetch_assoc($result)){
        echo "<tr><td>{$row['EnrollmentID']}</td><td>{$row['Grade']}</td> 
        <td>{$row['EnrollmentSemester']}</td><td>{$row['CourseID']}</td><td> 
        {$row['StudentID']}</td><td>{$row['Title']}</td><td>{$row['Credits']} 
        </td><td>{$row['LastName']}</td><td>{$row['FirstMidName']}</td></tr>";
    }
    echo "</table>";
}

In this snippet, we use if statement to check if variable $_POST['submit'] exists.
Here submit with is the name of your form's submit button
Note: a $_POST variable will only exist if the form was submitted, calling isset() will return false if the form wasn't submitted and as such your code inside { } will not be executed on first load but will run upon submit.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.