Cześć,
mam problem z przesyłaniem danych wprowadzonych w formularzu do bazy danych. Poniżej wklejam skrypt php który powinien przesyłać dane z formularza do bazy, natomiast tak się nie dzieje. Gdyby ktoś miał jakiś pomysł jak to rozwiązać, będę wdzięczny za każdą podpowiedź.
<?php
require("connect.php");
// Sprawdzenie, czy formularz został przesłany metodą POST
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Pobieranie danych z formularza
$skType = isset($_POST['SK']) ? mysqli_real_escape_string($conn, $_POST['SK']) : '';
$wkType = isset($_POST['wk']) ? mysqli_real_escape_string($conn, $_POST['wk']) : '';
$mrType = isset($_POST['mr']) ? mysqli_real_escape_string($conn, $_POST['mr']) : '';
$note = isset($_POST['note']) ? mysqli_real_escape_string($conn, $_POST['note']) : '';
// Sprawdzanie, czy wszystkie wymagane pola zostały wypełnione
if (!empty($skType) && !empty($wkType) && !empty($mrType) && !empty($note)) {
// Tworzenie zapytania SQL
$sql = "INSERT INTO uwagi (FK_SK, FK_WK, FK_Nr_mod, tresc) VALUES ('$skType', '$wkType', '$mrType', '$note')";
// Wykonanie zapytania
if (mysqli_query($conn, $sql)) {
echo "Zgłoszenie zostało zapisane pomyślnie.";
} else {
echo "Błąd: " . mysqli_error($conn);
}
} else {
echo "Proszę wypełnić wszystkie pola.";
}
}
// Zamykanie połączenia z bazą danych
mysqli_close($conn);
?>
Sprawdziłem, czy w ogóle można za pomocą tego skryptu wysyłać jakiekolwiek dane do bazy i tak można. Zmodyfikowałem go trochę i pod wartości zmiennych przypisałem stałe wartości, a nie te pobierane z formularza. W tym wariancie ten skrypt działa i wprowadza rekordy do tabeli w bazie.
<?php
require("connect.php");
// Sprawdzenie, czy formularz został przesłany metodą POST
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Pobieranie danych z formularza
$skType = 'SK3';
$wkType = 'WK03_SK03';
$mrType = '101B_014';
// Sprawdzanie, czy wszystkie wymagane pola zostały wypełnione
if (!empty($skType) && !empty($wkType) && !empty($mrType)) {
// Tworzenie zapytania SQL
$sql = "INSERT INTO uwagi (FK_SK, FK_WK, FK_Nr_mod) VALUES ('$skType', '$wkType', '$mrType')";
// Wykonanie zapytania
if (mysqli_query($conn, $sql)) {
echo "Zgłoszenie zostało zapisane pomyślnie.";
} else {
echo "Błąd: " . mysqli_error($conn);
}
} else {
echo "Proszę wypełnić wszystkie pola.";
}
}
// Zamykanie połączenia z bazą danych
mysqli_close($conn);
?>
Wydaje mi się, że błąd musi być na poziomie pobieranie danych z formularza przez skrypt, podejrzewam, że może być gdzieś jeden znak dolara ($) za dużo lub za mało. Dodatkowo dla lepszego zorientowania przesyłam kod ze stroną na której znajduje się formularz - index.php. A także plik który ma za zadanie łączyć się z bazą danych - connect.php.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formularz Zgłoszeń</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<button id="openFormBtn">Otwórz Formularz</button>
<div id="popupForm" class="popup-form">
<div class="form-container">
<span class="close-btn" id="closeFormBtn">×</span>
<h2>Formularz Zgłoszeń</h2>
<div class="toggle-buttons">
<button id="objazdBtn">Objazd</button>
<button id="satBtn">SAT</button>
</div>
<form id="reportForm" action="add.php" method="post">
<div class="dropdowns">
<label for="sk">Wybierz SK:</label>
<select id="sk" name="sk">
<option value="">Wybierz SK</option>
<?php /Skrypt pobierający opcje wyboru z bazy danych
$host = 'localhost';
$dbname = 'aplikacja';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT id, name FROM sk");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
} catch (PDOException $e) {
echo "Błąd połączenia: " . $e->getMessage();
}
?>
</select>
<label for="wk">Wybierz WK:</label>
<select id="wk" name="wk">
<option value="">Wybierz WK</option>
<?php
try {
$pdo2 = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo2->query("SELECT id, name FROM wk");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
} catch (PDOException $e) {
echo "Błąd połączenia: " . $e->getMessage();
}
?>
</select>
<label for="MR">Wybierz MR:</label>
<select id="MR" name="mr">
<option value="">Wybierz MR</option>
<?php
try {
$pdo3 = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo3->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo3->query("SELECT id, name FROM mr");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>";
}
} catch (PDOException $e) {
echo "Błąd połączenia: " . $e->getMessage();
}
?>
</select>
</div>
<label for="note">Uwagi (objazd):</label>
<textarea id="note" name="note" rows="4" minlength="15" required></textarea>
<label for="fileUpload">Dodaj pliki (max 5):</label>
<input type="file" id="fileUpload" name="files[]" multiple accept="image/*" max="5">
<button type="reset" id="clearFormBtn"><img id="clearIcon" src="eraser.png" alt="Clear" /></button>
<button type="submit" id="submitBtn">Zatwierdź uwagę</button>
</form>
<a href="uwagi.php" target="_blank"><button id="showHistoryBtn">Wyświetl uwagi dla tego urządzenia</button></a>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
<?php
$conn = mysqli_connect(
'localhost',
'root',
'',
'aplikacja'
);
// Sprawdzenie połączenia
if (!$conn) {
die("Błąd połączenia z bazą danych: " . mysqli_connect_error());
}
?>