Cześć,
uczę się od niedawna programowania (o ile tak to można nazwać:) ). Chciałem zrobić prosty formularz/program typu magazyn połączony z bazą danych, aby program sczytywał jaki produkt wybieram w select, a następnie wykołowywał sekwencje albo dodawania albo odejmowania ilości zawartości.
kod:
<?php
// Dodajemy shortcode dla formularza
function formularz_modyfikacji_produktow_shortcode() {
ob_start();
?>
<form id="modyfikacja-produktow-form" method="post">
<label for="produkt">Wybierz produkt:</label>
<select name="produkt" id="produkt">
<?php
$conn = new mysqli("localhost", "login do magazynu", "*tutaj jest haslo do mojego magazynu", "baza danych sql");
$wynik = $conn->query("SELECT * FROM produkty");
while ($produkt = $wynik->fetch_assoc()) {
echo "<option value='" . $produkt['id'] . "'>" . $produkt['nazwa'] . "</option>";
}
?>
</select>
<label for="ilosc">Podaj ilość:</label>
<input type="number" step="0.01" name="ilosc" id="ilosc" required>
<button type="submit" name="dodaj">Dodaj</button>
<button type="submit" name="odejmij">Odejmij</button>
</form>
<?php
return ob_get_clean();
}
add_shortcode('modyfikacja_produktow', 'formularz_modyfikacji_produktow_shortcode');
// Obsługa formularza
function obsluga_formularza_modyfikacji_produktow() {
if (isset($_POST['dodaj']) || isset($_POST['odejmij'])) {
// Utwórz połączenie z bazą danych
$conn = new mysqli("localhost", "login do magazynu", "*tutaj jest haslo do mojego magazynu", "baza danych sql");
if ($conn->connect_error) {
die("Błąd połączenia z bazą danych: " . $conn->connect_error);
}
// Pobranie identyfikatora produktu z formularza
$produkt['id'] = intval($_POST['produkt']);
// Pobranie aktualnej ilości produktu z bazy danych
$zapytanie = "SELECT ilosc FROM produkty WHERE id = ?";
$stmt = $conn->prepare($zapytanie);
$stmt->bind_param("i", $produkt['id']);
$stmt->execute();
$stmt->bind_result($aktualna_ilosc);
$stmt->fetch();
$stmt->close();
// Pobranie ilości do dodania lub odjęcia
$ilosc = floatval($_POST['ilosc']);
// Aktualizacja ilości produktu w bazie danych
if (isset($_POST['dodaj'])) {
$nowa_ilosc = $aktualna_ilosc + $ilosc;
} elseif (isset($_POST['odejmij'])) {
$nowa_ilosc = $aktualna_ilosc - $ilosc;
}
// Wykonaj aktualizację bazy danych
$update_query = "UPDATE produkty SET ilosc = ? WHERE id = ?";
$update_stmt = $conn->prepare($update_query);
$update_stmt->bind_param("id", $nowa_ilosc, $produkt_id);
$update_stmt->execute();
$update_stmt->close();
// Zakończ połączenie z bazą danych
$conn->close();
}
}
add_action('init', 'obsluga_formularza_modyfikacji_produktow');
?>
a błąd, który występuje to:
Identyfikator produktu: 1Zapytanie SQL: SELECT * FROM produkty WHERE id = 1object(mysqli_result)#2512 (5) { ["current_field"]=> int(0) ["field_count"]=> int(3) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) } Nie znaleziono produktu o podanym identyfikatorze.
chat gpt nie pomógł w rozwiązaniu problemu.
Dziękuję z góry za pomoc!