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

PHP dodaje za dużo rekordów do bazy

Object Storage Arubacloud
–1 głos
515 wizyt
pytanie zadane 9 maja 2016 w PHP przez skrzatjedyny Gaduła (3,150 p.)
edycja 9 maja 2016 przez skrzatjedyny

Witam, jestem bardzo początkujący jeśli chodzi o PHP i napotkałem na taki problem, mianowicie stworzyłem sobie prosty system komentarzy/opinii. Niestety "coś" po dodaniu komentarza dodaje mi wcześniej puste rekordy. Wygląda to tak:

Co najlepsze, czasem dodają się te puste rekordy, a czasem nie.

Kod (head):

<?php

    require_once "connect.php";

    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

    if($polaczenie->connect_errno!=0)
    {
        echo "Error: ".$polaczenie->connect_errno;
		$polaczenie->close();
    }
    else
    {
	
		if(!isset($autor) || !isset($tresc))
		{
		$autor = $_POST['autor'];
		$tresc = $_POST['tresc'];
		
        
        $autor = htmlentities($autor, ENT_QUOTES, "UTF-8");
        $tresc = htmlentities($tresc, ENT_QUOTES, "UTF-8");
        
        $dodaj=mysqli_query($polaczenie, "INSERT INTO opinie SET id_opinii=NULL, autor='$autor', tresc='$tresc'");
        
		}
		
    }

    $wyjmij = mysqli_query($polaczenie, "SELECT * FROM opinie");
    
    $polaczenie->close();
    
?>

oraz w części BODY:

<div class="opinie">
                <?php
                
                if(mysqli_num_rows($wyjmij) > 0)
                {
                    while ($r = mysqli_fetch_assoc($wyjmij))
                    {
                        echo '<div class="opinia">';
                        echo '<p class="autor">'.$r['autor'].'</p>';
                        echo '<p>'.$r['tresc'].'</p>';
                        echo '</div>';
                    }
                }
                    
                ?>
            </div>

Jeśli widzicie też jakiś inny karygodny błąd, chętnie wysłucham (widzę, że coś jest nie tak z kodowaniem znaków w bazie, lecz na stronie wyświetlają się poprawnie :P). Ale pierw proszę, pomóżcie z tymi pustymi rekordami :(

EDIT: jak to jest, że 3 minuty po dodaniu pytania sam się orientujesz co się dzieje? :P Odkryłem, że każde odświeżenie strony dodaje jeden pusty rekord. No dobrze, w takim razie zmieniam pytanie na:
Co i jak zmienić, żeby tego uniknąć?

komentarz 9 maja 2016 przez efiku Szeryf (75,160 p.)
Przejdz na PDO bo jest nowsze i łatwiejsze. Usun malpy z kodu. Bede trul tak do znudzenia każdemu.

2 odpowiedzi

+1 głos
odpowiedź 9 maja 2016 przez efiku Szeryf (75,160 p.)
Dodaje bo.... !isset. A jakbyś tak włączył sobie wyświetlanie błędów to byś zobaczył notice ( linia 17-18)
1
komentarz 9 maja 2016 przez efiku Szeryf (75,160 p.)
Smieszy mnie to jak bierzecie kod Zelenta dodajecie coś z innych kodów do tego (obiektowe mysqli to po kij proceduralne) i dziwicie się że nie działa.
komentarz 9 maja 2016 przez skrzatjedyny Gaduła (3,150 p.)
nie rozumiem co Cie tak śmieszy? czego oczekujesz od kogoś kto uczy się od paru dni tego języka, zobaczył dwa filmiki na YT i próbuje coś sensownego napisać? każdy kiedyś zaczynał... chyba dobrze, że się próbuje czegoś nowego?
1
komentarz 9 maja 2016 przez efiku Szeryf (75,160 p.)
Oczekuje, że nie będzie brał gotowych kodów i sklejał kilka z nich w jeden :/

Bardziej się zniechęcisz, niż czegoś nauczysz,
Jeśli chcesz wiedzieć, to ja zaczynałem od czytania dokumentacji, a później zacząłem czytać blogi, gdzie ludzie pisali odnośnie nowych technik i bibliotek.

Jeżeli chcesz się czegoś nauczyć to:

- Wymyśl sobie jakąś prostą apke, np. Lista zadań.  (NIE bierz się za logowanie/rejestracje na początku - to gwóźdź do trumny)
- Przejdź od razu na OOP: https://webmastah.pl/jak-programowac-obiektowo-cz-1-wstep/
- Popatrz na to: https://php-kurs.gitbooks.io/phpkurs/content/
- Tutaj: https://symfony.com/doc/current/book/http_fundamentals.html ( PODSTAWY działania HTTP)
- Tutaj: http://www.phptherightway.com/
- Tutaj: http://phpers.github.io/faq/

Obecnie używa się najczęściej w PHP:
 -> Podejścia obiektowego
 -> PDO
 -> Composera
 -> Twiga

Jak Ci się chce uczyć to googluj te zagadnienia i rozwijaj się.
0 głosów
odpowiedź 9 maja 2016 przez Duo Użytkownik (540 p.)
Wrzuć przed ifa 
       $autor = $_POST['autor'];
        $tresc = $_POST['tresc'];

 

Dodatkowo isset zamień na funkcję empty, która sprawdzi czy zmienna jest pusta, a nie czy zmienna istnieje.

 

Podobne pytania

0 głosów
1 odpowiedź 502 wizyt
pytanie zadane 27 lipca 2020 w PHP przez Samek2222 Początkujący (440 p.)
0 głosów
2 odpowiedzi 630 wizyt
pytanie zadane 18 lutego 2020 w PHP przez adikpl Użytkownik (660 p.)
0 głosów
1 odpowiedź 249 wizyt
pytanie zadane 28 kwietnia 2019 w PHP przez iframeeh Użytkownik (680 p.)

92,555 zapytań

141,402 odpowiedzi

319,544 komentarzy

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

...