Insert Form Data into Database not working

Viewed 27

I am newer to PHP and I cannot get my code to work. When I submit the form I keep getting errors:

INSERT INTO class_schedule (date, start_id, end_id, classroom_id, type_id, name_id) VALUES ('2022-10-20', '', '', '', '', '')SQL ERROR! Incorrect integer value: '' for column chatoyan_schedule.class_schedule.start_id at row 1 INSERT INTO class_schedule (date, start_id, end_id, classroom_id, type_id, name_id) VALUES ('2022-10-20', '', '', '', '', '')

Here is my code from the form:

Class Date: <input type="date" name="date">

<br>

Class Start Time:
<select type="time" name="start">
    <?php
    $sql = "SELECT * from starts";

    $results = $mysql -> query($sql);
    if(!$results){
        echo "SQL ERROR! " . $mysql -> error;
        echo "<br>" . $sql . "<br>";
    }

    while($currentrow = $results -> fetch_assoc()) {
        echo "<option value=''" . $currentrow["start_id"] .'>' . $currentrow["start"] . "</option>";
    }
    ?>

</select>
<br>

Class End Time:
<select type="time" name="end">
    <?php
    $sql = "SELECT * from ends";

    $results = $mysql -> query($sql);
    if(!$results){
        echo "SQL ERROR! " . $mysql -> error;
        echo "<br>" . $sql . "<br>";
    }

    while($currentrow = $results -> fetch_assoc()) {
        echo "<option value=''" . $currentrow["end_id"] .'>' . $currentrow["end"] . "</option>";
    }
    ?>

</select>
<br> Room Number: <select  name="room">
    <?php
    $sql = "SELECT * from classrooms";

    $results = $mysql -> query($sql);
    if(!$results){
        echo "SQL ERROR! " . $mysql -> error;
        echo "<br>" . $sql . "<br>";
    }

    while($currentrow = $results -> fetch_assoc()) {
        echo "<option value=''" . $currentrow["classroom_id"] .'>' . $currentrow["classroom"] . "</option>";
    }
    ?>

</select>
<br>Class Type:
<select  name="type">
    <?php
    $sql = "SELECT * from types";

    $results = $mysql -> query($sql);
    if(!$results){
        echo "SQL ERROR! " . $mysql -> error;
        echo "<br>" . $sql . "<br>";
    }

    while($currentrow = $results -> fetch_assoc()) {
        echo "<option value=''" . $currentrow["type_id"] .'>' . $currentrow["type"] . "</option>";
    }
    ?>

</select>
<br>


Class Name:
<select name="name">
    <?php
    $sql = "SELECT * from names";

    $results = $mysql -> query($sql);
    if(!$results){
        echo "SQL ERROR! " . $mysql -> error;
        echo "<br>" . $sql . "<br>";
    }

    while($currentrow = $results -> fetch_assoc()) {
        echo "<option value=''" . $currentrow["name_id"] .'>' . $currentrow["name"] . "</option>";
    }
    ?>

</select>
<br>

<input type="submit">

And here is the PHP code:

$date = $_REQUEST['date'];
$start = $_REQUEST['start'];
$end = $_REQUEST['end'];
$room = $_REQUEST['room'];
$type = $_REQUEST['type'];
$name = $_REQUEST['name'];


$sql = "INSERT INTO class_schedule
       (date, start_id, end_id, classroom_id, type_id, name_id)
        VALUES ('$date', '$start', '$end', '$room', '$type', '$name')";


$date = strtotime($_REQUEST["date"]);
$start = strtotime($_REQUEST["start"]);
$end = strtotime($_REQUEST["end"]);

echo "<br>" . $sql;

$results = $mysql ->query($sql);

if(!$results){
    echo "SQL ERROR! " . $mysql -> error;
    echo "<br>" . $sql . "<br>";
} else {
    echo "SUCCESS! Record Added!";
}

?>

I don't know what I'm doing wrong. Everything looks correct to me.

0 Answers
Related