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/doc/refman/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