wysyłanie formularza i tworzenie kodu czytelnika

0

Cześć, zaczynam dopiero z phpem i robię arkusze egzaminacyjne
Mam zadanie

  • Pobiera dane z formularza
  • Wyświetla napis „Czytelnik: ......................... został dodany do bazy danych” (w miejscu kropek
    należy umieścić imię i nazwisko pobrane z formularza)
  • Tworzy kod czytelnika składający się z dwóch początkowych liter imienia, dwóch początkowych liter
    nazwiska (wszystkie litery powinny być wielkie) oraz dwóch ostatnich cyfr z roku urodzenia
  • Wysyła do bazy danych zmodyfikowane zapytanie 2 (z pliku zapytania.txt), wstawiające do tabeli
    czytelnicy nowy rekord zawierający imię i nazwisko pobrane z formularza oraz kod czytelnika
    wygenerowany w skrypcie

zapytanie 2: INSERT INTO czytelnicy (imie, nazwisko, kod) VALUES ('Anna', 'Michalak', 'ANMI05');

Gdyby ktoś mógłby mi napisać skrypt do tego zadania i je po krótce wytłumaczyć byłbym bardzo wdzięczny
Siedzę już godzinę nad tym i nic z moich prób nie działa

4

Tylko godzinę i już prosisz o gotowca? Raczej zróbmy inaczej, wklej co masz i po kolei można debatować nad problemami, pomysłami i ich implementacją.

0

@jurek1980:

<?php
	$connect = mysqli_connect("localhost","root","","biblioteka");
  $imie = $_POST['imie'];
  $nazwisko = $_POST['nazwisko'];
  $rok = $_POST['rok'];
  $dodaj=mysqli_query($connect,"INSERT INTO czytelnicy (imie, nazwisko) VALUES ('$imie','$nazwisko')");
  echo "czytelnik".' '.$nazwisko.' '."został dodany do bazy danych";
?>

Dopiero dołączyłem do tego forum i dzięki za pomoc z ogarnięciem gdzie co postować

3

Na razie łączysz się z bazą. i coś do tej bazy chcesz wstawić. Pytanie gdzie masz formularz?
Tip. Sprawdzaj czy dane są w tablicy $_POST przy użyciu isset() np

if (isset($_POST['rok'])
    {
        // wykonaj coś
    }

Tip 2 jak widzisz ja sformatowałem kod przy użyciu odpiewnich tagów i wyboru języka. Dzięki temu jest kolorowanie składni i wszystko jest czytelniejsze.

0

@jurek1980:
Tak tutaj u mnie wygląda ta całość którą mam, z isset próbowałem i też nie działało ale jeszcze popróbuję

<section class="srodkowy">
    <br>
<h3>Dodaj nowego czytelnika</h3>
<br>
<form action="biblioteka.php" method="POST">
imie: <input type="text" name='imie'>
<br>
nazwisko: <input type="text" name='nazwisko'>
<br>
rok urodzenia: <input type="number" name='rok'>
<br>
<input type="submit" value="DODAJ" name="przycisk">
<?php
$connect = mysqli_connect("localhost","root","","biblioteka");
  $imie = $_POST['imie'];
  $nazwisko = $_POST['nazwisko'];
  $rok_urodzenia = $_POST['rok'];



?>
</form> </section>
3

Najpierw zobacz czy w ogóle przechodzisz do formularza a w nim dane się pojawiają.
W tym pliku biblioteka.php na początku w pierwszych linijkach dopisz:

var_dump($_POST);
die('przerywam działanie');

zobacz czy masz komunikację formularz - plik i czy wszystkie klucze tablicy POST masz wypełnione.

Ach i nie masz zamkniętego tagu form

0

@jurek1980:
Teraz wymyśliłem takie wypociny, tylko, że na stronie wyświetla mi Undefined array key "imie", Undefined array key "nazwisko", Undefined array key "rok"
a w inpucie mam to w name.

<?php
$connect = mysqli_connect("localhost","root","","biblioteka");
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$rok = $_POST['rok'];
$kod = $imie[0].$imie[1].$rok[2].$rok[3].$nazwisko[0].$nazwisko[1];
$dodaj=mysqli_query($connect,"INSERT INTO czytelnicy (imie, nazwisko, kod) VALUES ('$imie','$nazwisko','$kod')");
echo "czytelnik".' '.$nazwisko.' '."został dodany do bazy danych";
?>
2

No dobrze. To masz to w oddzielnych plikach? Czy i HTML od formularza i kod PHP masz w jednym pliku?
Jak na początku masz pusty formularz to i pusta jest tablica POST i nie ma w niej kluczy do których się odnosisz. Dlatego trzeba sprawdzać czy te klucze i dane są z użyciem isset https://www.php.net/manual/en/function.isset.php

0

@jurek1980:
tak html mam tam gdzie php, dzięki będę coś kombinował.

3

Jak masz HTML i sam kod w tym samym miejscu to musisz czynności związane z obsługą formularza wrzucić w warunek sprawdzający czy te dane już tam są

if(isset($_POST['imie']) AND isset(['kod'])){ 
    $connect=mysqli_connect("localhost","root","","biblioteka");
    $imie = $_POST['imie'];
    $nazwisko = $_POST['nazwisko'];
    $rok = $_POST['rok'];
    // i reszta Twojego kodu który ma się wykonać jeśli formularz nie jest pusty

?>

W kodzie zostawiłem pewne rzeczy do uzupełnienia. Zastanów się nad warunkiem, czy tylko taki ma być spełniony.

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