• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

php zapis i odczyt w jednej tabeli

Object Storage Arubacloud
+1 głos
280 wizyt
pytanie zadane 31 stycznia 2022 w PHP przez gatka84 Bywalec (2,150 p.)

Witam mam problem i zastanawiam się jak to poprawnie zrobić tzn. chcę dodawać w tabeli dane i to zrobiłam i działa ale na tej samej stronie chcę odczytać ostatni wpis z tej samej tabeli i tu wiem jakie zapytanie sql ale jak powinno poprawnie się to zapisać

 if (isset($_POST['prad'])) {
        $prad = $_POST["prad"];
        $gaz = $_POST['gaz'];
        $kuchnia_ciepla = $_POST['kuchnia_ciepla'];
        $kuchnia_zimna = $_POST['kuchnia_zimna'];
        $lazienka_ciepla = $_POST['lazienka_ciepla'];
        $lazienka_zimna = $_POST['lazienka_zimna']; 

        if( empty($prad) || empty($gaz) || empty($kuchnia_ciepla) || empty($kuchnia_zimna) ||
        empty($lazienka_ciepla) || empty($lazienka_zimna)) {
            // echo "Wypełnij wszystkie pola";
            $_SESSION['odp_X'] = '<span style="color:Maroon">Wypełnij wszystkie pola</span>';
        }
        else
        {
            $conn = new mysqli("localhost", "root", "", "osadnicy");
            
            $odp = $conn->query("INSERT INTO odczyt(prad, gaz, kuchnia_ciepla, kuchnia_zimna, 
            lazienka_ciepla, lazienka_zimna) VALUES ('$prad', '$gaz', '$kuchnia_ciepla', 
            '$kuchnia_zimna', '$lazienka_ciepla', '$lazienka_zimna')");

            if($odp) {
            //echo "Zapisano";
            $_SESSION['odp_T'] = '<span style="color:green">Zapisano</span>';
            }
            else
            {
            //echo "Nie udało się zapisać";
            $_SESSION['odp_N'] = '<span style="color:Maroon">Nie udało się zapisać</span>';
            }

            $conn->close();
        }

a żeby pobrać ostani wpis z tabeli to zadam

SELECT * FROM odczyt ORDER BY ID DESC LIMIT 1

 

i teraz jak to ze sobą poprawnie zapisać i dodać fetch_assoc do odczytu tabeli żeby przypisać

$_SESSION które wyświetlę w konkretnych div

no chyba że to się inaczej robi to prosiłabym o podpowiedź lub nakierowanie jak to poprawnie zrobić.

komentarz 1 lutego 2022 przez VBService Ekspert (253,340 p.)
edycja 1 lutego 2022 przez VBService

tej samej stronie chcę odczytać ostatni wpis z tej samej tabeli

a to ma być po udanym wprowadzeniu INSERT-a, czy niezależnie od wyniku INSERT-a?

komentarz 1 lutego 2022 przez gatka84 Bywalec (2,150 p.)

niezależnie od wyniku INSERT-a

1 odpowiedź

0 głosów
odpowiedź 1 lutego 2022 przez VBService Ekspert (253,340 p.)

Dla

czy niezależnie od wyniku INSERT-a

if (isset($_POST['prad'])) {
       $prad = $_POST["prad"];
       $gaz = $_POST['gaz'];
       $kuchnia_ciepla = $_POST['kuchnia_ciepla'];
       $kuchnia_zimna = $_POST['kuchnia_zimna'];
       $lazienka_ciepla = $_POST['lazienka_ciepla'];
       $lazienka_zimna = $_POST['lazienka_zimna']; 
 
       if( empty($prad) || empty($gaz) || empty($kuchnia_ciepla) || empty($kuchnia_zimna) ||
           empty($lazienka_ciepla) || empty($lazienka_zimna)) {
           // echo "Wypełnij wszystkie pola";
           $_SESSION['odp_X'] = '<span style="color:Maroon">Wypełnij wszystkie pola</span>';
       }
       else
       {
           $conn = new mysqli("localhost", "root", "", "osadnicy");
            
           $odp = $conn->query("INSERT INTO odczyt(prad, gaz, kuchnia_ciepla, kuchnia_zimna, 
           lazienka_ciepla, lazienka_zimna) VALUES ('$prad', '$gaz', '$kuchnia_ciepla', 
           '$kuchnia_zimna', '$lazienka_ciepla', '$lazienka_zimna')");
 
           if($odp) {
                //echo "Zapisano";
                $_SESSION['odp_T'] = '<span style="color:green">Zapisano</span>';
           }
           else
           {
                //echo "Nie udało się zapisać";
                $_SESSION['odp_N'] = '<span style="color:Maroon">Nie udało się zapisać</span>';
           }

           $sql = "SELECT * FROM odczyt ORDER BY ID DESC LIMIT 1";
           if($odp = $conn->query($sql)) {
                $dane = $odp->fetch_assoc();
                $_SESSION['prad'] = $dane['prad'];
                $_SESSION['gaz'] = $dane['gaz'];
                // ... itd;
                $_SESSION['lazienka_zimna'] = $dane['lazienka_zimna'];
           }
 
           $conn->close();
       }

 

komentarz 1 lutego 2022 przez gatka84 Bywalec (2,150 p.)
edycja 1 lutego 2022 przez gatka84
hmmm w sumie to niezależnie bo skrypt będzie pokazywać ostatnie wpisy przed podaniem aktualnego odczytu licznika
komentarz 2 lutego 2022 przez gatka84 Bywalec (2,150 p.)

@VBService,  to co podałeś działa po zapisaniu, natomiast przy odczycie niezależnym od INSERT-a należy utworzyć osobne zapytanie do bazy jak na początku

$conn = new mysqli("localhost", "root", "", "osadnicy");

tylko że odczyt i wyświetlenie konkretnych danych niezależnie od zapisu -

i tu nie mogę tego zrozumieć jak to zrobić poprawnie tzn wiele zapytań do tej samej tabeli,

a dokładniej pierw odczyt i wyświetlenie ostatnich wpisów i potem możliwość zapisu nowych - zapis działa poprawnie.

Podobne pytania

0 głosów
0 odpowiedzi 517 wizyt
pytanie zadane 13 stycznia 2022 w C i C++ przez Nikso Nowicjusz (230 p.)
0 głosów
1 odpowiedź 1,827 wizyt
pytanie zadane 27 września 2017 w C i C++ przez B0nkers Początkujący (310 p.)
+1 głos
1 odpowiedź 1,285 wizyt

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...