formularz i SQL

0

Witam od kilku dni borykam się z takim problemem. Chcę w jednym pliku zrobić formularz, łączenie z bazą SQL, utworzenie tabeli, i dodanie danych z formularza.
Mam coś takiego i to dziala. Ale już pozjadałem wszystkie nerwy i nie wiem jak dodać dane do bazy przez formularz. Pod spodem jest uproszczony drugi plik z formularzem. Czy jest ktoś w stanie go jakoś poprawić żeby zadziałał? Był bym bardzo bardzo wdzięczny bo pozjadałem już wszystkie nerwy :|
Aha przy 2 pliku wyskakuje błąd MethodNotAllowedHttpException No message
Robię to w Laravelu

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "projektDemo";

// Create connection
$conn = mysqli_connect($servername, $username, $password,$dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";

// sql to create table
$sql = "CREATE TABLE MyGuests22 (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Imie VARCHAR(30) NOT NULL,
Nazwisko VARCHAR(30) NOT NULL,
Telefon VARCHAR(9) NOT NULL,
Czas DATETIME (6) NOT NULL,
UNIQUE(Czas)

)";

if ($conn->query($sql) === TRUE) {
echo "Table MyGuests20 created successfully";

} else {
echo "Error creating table: " . $conn->error;
}

$sql = "INSERT INTO MyGuests22 (id, Imie, Nazwisko, Telefon, Czas)
VALUES ('1', 'Doe', 'john', '505050505', '2018-12-19')";

if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "
" . $conn->error;
}

?>

DRUGI PLIK

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "projektDemo";

// Create connection
$conn = mysqli_connect($servername, $username, $password,$dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";

// sql to create table
$sql = "CREATE TABLE MyGuests37 (

Imie VARCHAR(30) NOT NULL,
Nazwisko VARCHAR(30) NOT NULL

)";

if ($conn->query($sql) === TRUE) {
echo "Table MyGuests20 created successfully";

} else {
echo "Error creating table: " . $conn->error;
}

if (! empty($_POST)){

$sql = "INSERT INTO MyGuests37 (Imie, Nazwisko)
VALUES ($Imie, $Nazwisko)";

$Imie=$_POST['Imie'];
$Nazwisko=$_POST['Nazwisko'];

}
?>

<form method="POST" action=""> <input name="Imie" type="text"> <input name="Nazwisko" type="text"> <input type="submit" value="Submit Form"> </form>
0

kilka błędów:

 $sql = "CREATE TABLE MyGuests22 (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Imie VARCHAR(30) NOT NULL,
    Nazwisko VARCHAR(30) NOT NULL,
    Telefon VARCHAR(9) NOT NULL,
    Czas DATETIME (6) NOT NULL,
    UNIQUE(Czas)

    )";

skoro działasz ciągle na tej samej bazie to poza pierwszym uruchomieniem zawsze dostaniesz błąd, jak już to robisz w jednym pliku to użyj IF NOT EXISTS http://ftp.nchu.edu.tw/MySQL/[...]fman/5.0/en/create-table.html

 $sql = "CREATE TABLE MyGuests22 IF NOT EXISTS (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Imie VARCHAR(30) NOT NULL,
    Nazwisko VARCHAR(30) NOT NULL,
    Telefon VARCHAR(9) NOT NULL,
    Czas DATETIME (6) NOT NULL,
    UNIQUE(Czas)

    )";

dodawanie:

if (! empty($_POST)){
$sql = "INSERT INTO MyGuests37 (Imie, Nazwisko)
VALUES ($Imie, $Nazwisko)";
$Imie=$_POST['Imie'];
$Nazwisko=$_POST['Nazwisko'];
}

zmienne które używasz w zapytaniu inicjalizujesz po stowrzeniu tekstu zapytania, czyli będzie miało postać:INSERT INTO MyGuests37 (Imie, Nazwisko) VALUES (, ) brak też ci ' obejmujących dodawane stringi, czyli powinno być tak:

if (! empty($_POST)){
$Imie=$_POST['Imie'];
$Nazwisko=$_POST['Nazwisko'];

$sql = "INSERT INTO MyGuests37 (Imie, Nazwisko)
VALUES ('$Imie', '$Nazwisko')";
}

W drugim pliku wstawiasz dane do tabeli z columną AUTO_INCREMENT, więc

//użyjesz "magicznego słowa DEFAULT
$sql = "INSERT INTO MyGuests22 (id, Imie, Nazwisko, Telefon, Czas)
VALUES (DEFAULT, 'Doe', 'john', '505050505', '2018-12-19')";

//lub pominiesz id w insercie
$sql = "INSERT INTO MyGuests22 ( Imie, Nazwisko, Telefon, Czas)
VALUES ('Doe', 'john', '505050505', '2018-12-19')";
0

Dziwie się ,że są takie osoby które bezinteresownie pomagają na tym forum. Więc bardzo za to dziękuję. Mimo wszystko jestem chyba osobą ułomną i nie mogę tego ogarnąć. A jest mi to dosyć potrzebne bo jest to część mojej pracy inżynierskiej. Czy ten kod php z tym formularzem powinien już działać? Po odpaleniu łączy się z serwerem tworzy tabelę a po wpisaniu w formularz danych i próbie przesłania wywala błąd. Zdjęcie błędu jest pod kodem.

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "projektDemo";

// Create connection
$conn = mysqli_connect($servername, $username, $password,$dbname);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";

    // sql to create table
    $sql = "CREATE TABLE MyGuests43  IF NOT EXISTS(

    Imie text(30) NOT NULL,
    Nazwisko text(30) NOT NULL

    )";

    if ($conn->query($sql) === TRUE) {
    echo "Table MyGuests20 created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

if (! empty($_POST)){
$Imie=$_POST['Imie'];
$Nazwisko=$_POST['Nazwisko'];

$sql = "INSERT INTO MyGuests43 (Imie, Nazwisko)
VALUES ('$Imie', '$Nazwisko')";
}

?>

<form method="POST" action="">
        <input name="Imie" type="text">
        <input name="Nazwisko" type="text">
        <input type="submit" value="Submit Form">
        </form>

title

0

Nie widać błędu. Widać za to że tego inserta po post nie wykonujesz...

0

Tak jak @Marcin.Miga pisze nie widzę w kodzie puszczenia inserta na bazie

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0