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

PHP-SQL -Formularz nie jest dodawany do bazy

Object Storage Arubacloud
0 głosów
188 wizyt
pytanie zadane 2 kwietnia 2018 w PHP przez Szakal Początkujący (270 p.)
zmienione kategorie 3 kwietnia 2018 przez Arkadiusz Waluk

Witam ucze sie PHP i prosiłbym o pomoc z kodem.

Po odpaleniu formularzy wszystkie dane przechodza do zmiennych i niby sie dodaja do bazy ale ostatecznie na phpmyadmin nie ma tam tych rekordow. Co może być nie tak?

I jeszcze odatkowe pytanie: Jak napisać zeby po odswiezaniu strony nie wyswietlaly mi sie komunikaty ze wszystko jest nieuzupelnione?

Z góry dzięki za pomoc ;)

<!-------------------- PHP ---------->
<?php
session_start();       


$jakanazwa=$poj=$cena=$ilosc=$jakicheck=" ";
$walidacja_ok=true; //Flaga walidacyjna
$jakanazwa=$_POST['markaalko'];
$poj=$_POST['pojemnoscalko'];
$cena=$_POST['cenaalko'];
$ilosc=$_POST['iloscalko'];
    

    //Sprawdzenie dlugosci inputu Marki
    if((strlen($jakanazwa)<2)|| (strlen($jakanazwa)>10))       
        {
            $walidacja_ok=false;
            $_SESSION['e_markalko']="Marka musi posiadac od 2 do 10 znaków!";
        }

    //Sprawdzenie znaków alfa Marki
        if(ctype_alpha($jakanazwa)==false)
        {
             $walidacja_ok=false;
             $_SESSION['e_markalko']="Nazwa/Marka może składać się tylko z liter(bez polskich znaków) !";
        }
    //Sprawdzenie znaków numerycznych pojemnosci
        if((ctype_digit($poj)==false)&&(ctype_digit($cena)==false)&&(ctype_digit($ilosc)==false))
        {
             $walidacja_ok=false;
             $_SESSION['e_digit']="Pojemność/cena/ilość może składać się tylko z cyfr !";
        }
    //---------------Sprawdz Checkbox
        
    //Czy zaznaczono
    if(isset($_POST['checkpiwo'])||($_POST['checkwino'])||($_POST['checkwodka']))
        {
            //$walidacja_ok=true;
        
            if(isset($_POST['checkpiwo']))
            {
                $jakicheck="Piwo";
            }
            
            if(isset($_POST['checkwino']))
            {
                $jakicheck="Wino";
            }
        
            if(isset($_POST['checkwodka']))
            {
                $jakicheck="Wodka";
            }
            
        }else
            {   $walidacja_ok=false;
                $_SESSION['e_checki']="Zaznacz typ alkoholu!";
            }
    require_once "dbconnect.php";
    mysqli_report(MYSQLI_REPORT_STRICT);
	try
    {
    $polaczenie = new mysqli($host,$db_user,$db_password,$db_name);
    
        if($polaczenie->connect_errno!=0)
        {
           throw new Exception(mysqli_connect_errno());
        }  
    
        else//Dodawanie produktu
        { 
         echo $jakanazwa;       
         echo $jakicheck;       
         echo $poj;       
         echo $cena;       
         echo $ilosc;
        
        
         if($walidacja_ok==true)
            {
                    if($sql=("INSERT INTO uzytkownicy (Marka,Typ,Pojemnosc,Cena,ilosc)VALUES ('$jakanazwa','$jakicheck','$poj','$cena','$ilosc)"))
//                        (Marka,Pojemnosc,Cena,ilosc)
                {
                    $_SESSION['e_dodanodobazy']="Dodano do bazy!";
                    

                }
                else
                {
                    throw new Exception ($polaczenie->error);
                }
//            $sql = "INSERT INTO alkohole (Marka,Pojemnosc,Cena,Ilosc) 
//            VALUES (NULL, '$jakanazwa', '$poj', '$cena', '$ilosc')";
//             $_SESSION['e_dodanodobazy']="Dodano do bazy!";
            //}

            $polaczenie->close();
        }
        } 
    }
    catch(Exception $e)

        { 
          echo '<div class=error>Błąd serwera! Przepraszamy za niedogodności </div>';
          echo'<br/>Informacja developerska: '.$e; //info developerskie

        }

 
?>

    <!DOCTYPE html>

    <html lang="pl">

    <head>
        <meta charset="UTF-8">
        <title>Sklep-Dodaj do bazy</title>
        <link rel="stylesheet" href="style.css">
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <link href="https://fonts.googleapis.com/css?family=PT+Serif:400,700&amp;subset=latin-ext" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Amatic+SC:400,700&amp;subset=latin-ext" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Righteous&amp;subset=latin-ext" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=PT+Sans" rel="stylesheet">

    </head>

    <body>

        <div id="container">

            <div id="top"><a class="linktop" href="index.php">BAZA ALKOHOLI</a></div>



            <form method="post">



                <span id="wybierzopcje">Uzupełnij dane:</span>

                <br/><br/>
                <span id="checkboxy">
                Piwo:
                
                <input type="checkbox" name="checkpiwo"   /> Wino:
                <input type="checkbox" name="checkwino"  /> Wódka:
                <input type="checkbox" name="checkwodka" />
                
                <?php
            
                    if(isset($_SESSION['e_checki']))
                    {
                        echo '<div class="error">'.$_SESSION['e_checki'].'</div>';
                        unset($_SESSION['e_checki']);
                    }
                ?>
                </span>

                <br/><br/>
                <div id="gdzieinputy">
                    <span class="textinput">Podaj markę / nazwę</span>
                    <br/>

                    <input type="text" name="markaalko" required/>
                    <?php
            
                        if(isset($_SESSION['e_markalko']))
                        {
                            echo '<div class="error">'.$_SESSION['e_markalko'].'</div>';
                            unset($_SESSION['e_markalko']);
                        }
                        ?>
                        <br/><br/>
                        <span class="textinput">Podaj Pojemność</span>
                        <br/>
                        <input type="number_format" name="pojemnoscalko" required/>
                        <br/><br/>
                        <span class="textinput">Podaj Cenę</span>
                        <br/>
                        <input type="number_format" name="cenaalko" required/>
                        <br/><br/>
                        <span class="textinput">Podaj Ilość</span>
                        <br/>
                        <input type="number_format" name="iloscalko" required/>
                        <?php
                        if(isset($_SESSION['e_digit']))
                        {
                            echo '<div class="error">'.$_SESSION['e_digit'].'</div>';
                            unset($_SESSION['e_digit']);
                             //do visability
                        }
                    
                        ?>
                            <input type="submit" value="Dodaj do bazy" id="p_Dodajalkoholsubmit" />
                            <?php
                        if(isset($_SESSION['e_dodanodobazy']))
                        {
                             echo '<div class="dodano">'.$_SESSION['e_dodanodobazy'].'</div>';
                            unset($_SESSION['e_dodanodobazy']);   
                        }
                        ?>
                </div>
            </form>


        </div>




    </body>

    </html>

 

komentarz 3 kwietnia 2018 przez Mariusz08 Maniak (62,300 p.)
Zła kategoria pytania.

2 odpowiedzi

+2 głosów
odpowiedź 3 kwietnia 2018 przez Kamil Łydka Stary wyjadacz (13,600 p.)

Niczego nie dodajesz, bo nie wykonujesz zapytania:

if($sql=("INSERT INTO uzytkownicy (Marka,Typ,Pojemnosc,Cena,ilosc)VALUES ('$jakanazwa','$jakicheck','$poj','$cena','$ilosc)"))

$sql to jest po prostu string. 

Prawdopodobnie zapomniałeś o mysqli_query, do wykonania zapytania. 

http://php.net/manual/en/mysqli.query.php

Jest tam nawet fajny przykład do twojego problemu:

//style obiektowy
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

//styl proceduralny
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

$link to jest połączenie do bazy. 

komentarz 3 kwietnia 2018 przez Szakal Początkujący (270 p.)
Okej poprawione i już dodaje ;)

A jak napisać zeby po odswiezaniu strony nie wyswietlaly mi sie komunikaty ze wszystko jest nieuzupelnione?
komentarz 3 kwietnia 2018 przez Kamil Łydka Stary wyjadacz (13,600 p.)

Na którym etapie odświeżania? Nie wiem dokładnie o co chodzi, ale może pomoże sprawdzenie czy istnieje $_GET lub $_POST

if (isset($_POST)){

}
1
komentarz 3 kwietnia 2018 przez Szakal Początkujący (270 p.)
Chodziło mi jak wchodze pierwszy raz na stronę.

Ale juz sobie poradziłem tym,że wpisuje przykładowe zmienne a pozniej są one nadpisywane ;] Dzięki ! ;)
0 głosów
odpowiedź 3 kwietnia 2018 przez Mariusz08 Maniak (62,300 p.)

Jeszcze dodam od siebie

if($sql=("INSERT INTO uzytkownicy (Marka,Typ,Pojemnosc,Cena,ilosc)VALUES ('$jakanazwa','$jakicheck','$poj','$cena','$ilosc)"))

Przy ilość nie zamknąłeś `

Podobne pytania

0 głosów
1 odpowiedź 295 wizyt
pytanie zadane 6 czerwca 2019 w PHP przez Jayix Użytkownik (680 p.)
0 głosów
1 odpowiedź 419 wizyt
0 głosów
1 odpowiedź 2,577 wizyt
pytanie zadane 28 lipca 2017 w SQL, bazy danych przez Mateusz1223 Bywalec (2,440 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 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!

...