Witam,
Tak wiem, że nie w ten sposób powinienem się łączyć z bazą ale póki co to muszę to zrobić za pomoc przestarzałej technologi mysql_connect.
Problem polega na tym, że z poniższego kodu działa edycja i usuwanie wierszy z bazy, ale nie działa dodawanie INSERT INTO.
Nie rozumiem dlaczego ponieważ jak wspomniałem dwie poniższe instrukcje łączą się z bazą, mogę edytować i usuwać. Tracę cierpliwość więc proszę Was o pomoc, spójrzcie świeżym okiem i dajcie znać co może być nie tak.
$baza=http://www.php.net/mysql_connect("$nhost", "$nuser", "$nhaslo") or http://www.php.net/die ("Błąd: nie można połączyć się z mysqle-em"); $odpbaza=http://www.php.net/mysql_select_db($nbaza, $baza) or http://www.php.net/die ("Błąd: nie można wybrać bazy danych $nazwadb"); if(http://www.php.net/isset($_POST['dodaj'])){ $ins2 = @http://www.php.net/mysql_query("INSERT INTO faktury SET data_wprowadzenia='$data_wprowadzenia ', data_faktury='$data_faktury', nr_faktury='$nr_faktury', kwota_brutto='$kwota_brutto', kooperant='$kooperant', rodzaj_wydatku_id='$wydatki', wydatek_sprzedaz_id='$typ', uwagi='$uwagi'"); } if(http://www.php.net/isset($_POST['edit'])){ $ins = @http://www.php.net/mysql_query("UPDATE faktury SET data_wprowadzenia='$data_wprowadzenia ', data_faktury='$data_faktury', nr_faktury='$nr_faktury', kwota_brutto='$kwota_brutto', kooperant='$kooperant', rodzaj_wydatku_id='$wydatki', wydatek_sprzedaz_id='$typ', uwagi='$uwagi' WHERE id=$lp"); } if($_GET['del']){ $id_usun=$_GET['del']; $result_del=http://www.php.net/mysql_query("DELETE FROM faktury WHERE id=$id_usun"); $odpsql=http://www.php.net/mysql_query($result_del); }
if(http://www.php.net/isset($_POST['dodaj'])){ if($ins2) http://www.php.net/echo "<b class=\"ok\">Dodano fakturę</b>"; else http://www.php.net/echo "<b class=\"blad\">Nie udało się dodać!</b>"; } if(http://www.php.net/isset($_POST['edit'])){ if($ins) http://www.php.net/echo "<b class=\"ok\">Poprawiono fakturę</b>"; else http://www.php.net/echo "<b class=\"blad\">Nie udało się poprawić!</b>"; } if(http://www.php.net/isset($_GET['del'])){ if($result_del) http://www.php.net/echo "<b class=\"ok\">Faktura została usunięta</b>"; else http://www.php.net/echo "<b class=\"blad\">Nie udało się usunąć<br /> </b>"; }
Włącz raportowanie błędów, usuń @.
Przypięty wątek od 10 LAT!!!!!!!!
http://forum.php.pl/Jak_poprawnie_zadac_pytanie_oraz_przygotowac_srodowisko_pracy_t146215.html
Dziękuje Panowie za zainteresowanie. Otóż po usunięciu @ nie wyświetla żadnych błędów oprócz tego Nie udało się dodać!.
Włączyłem jeszcze:
http://www.php.net/error_reporting(E_ALL); http://www.php.net/ini_set('display_errors', 1);
if($_GET['del']){
Odeslano cie do przypietego tematu. Tam masz napisane wiecej co masz zrobic, np. jak wyswietlic potencjalny blad z bazy danych, czego aktualnie nie robisz. Zrob wiec to.
Dziękuję za sugestie odnośnie zgłębienia mojej wiedzy, chętnie z tego skorzystałem. A więc sprawa przedstawia się następująco:
1. Środowisko pracy - to serwer plików synology, Apache Server 2.2, mysql to MariaDB i wersja php 5.6
2. Po włączeniu wyświetlania błędów
http://www.php.net/error_reporting(E_ALL); http://www.php.net/ini_set('display_errors','1');
i sprawdzanie wartości zmiennych
http://www.php.net/mysql_query($ins) or http://www.php.net/die('BŁĄD:'.http://www.php.net/mysql_error());
if(http://www.php.net/isset($_POST['dodaj'])){ http://www.php.net/var_dump($lp); http://www.php.net/var_dump($data_wprowadzenia); http://www.php.net/var_dump($data_faktury); http://www.php.net/var_dump($nr_faktury); http://www.php.net/var_dump($kwota_brutto); http://www.php.net/var_dump($kooperant); http://www.php.net/var_dump($wydatki); http://www.php.net/var_dump($typ); http://www.php.net/var_dump($uwagi); $baza=http://www.php.net/mysql_connect("$nhost", "$nuser", "$nhaslo") or http://www.php.net/die ("Błąd: nie można połączyć się z mysqle-em"); $odpbaza=http://www.php.net/mysql_select_db($nbaza, $baza) or http://www.php.net/die ("Błąd: nie można wybrać bazy danych $nbaza"); $ins = http://www.php.net/mysql_query("INSERT INTO faktury SET data_wprowadzenia='$data_wprowadzenia ', data_faktury='$data_faktury', nr_faktury='$nr_faktury', kwota_brutto='$kwota_brutto', kooperant='$kooperant', rodzaj_wydatku_id='$wydatki', wydatek_sprzedaz_id='$typ', uwagi='$uwagi'"); http://www.php.net/mysql_query($ins) or http://www.php.net/die('BŁĄD:'.http://www.php.net/mysql_error()); }
string(2) "51" string(10) "2020-04-09" string(10) "2020-04-09" string(6) "125/25" string(4) "1111" string(1) "7" string(1) "7" string(1) "1" string(4) "test" BŁĄD:Query was http://www.php.net/empty
string(2) "50" string(10) "2019-06-25" string(10) "2019-06-25" string(9) "2019/0111" string(9) "125600.00" string(1) "3" string(1) "1" string(1) "1" string(5) "coś6" BŁĄD:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1
Tu akurat dublujesz dwa razy mysql_query:
mysql_query($ins) or die('BŁĄD:'.mysql_error()); //$ins to już mysql_query
Ok!, ale pomijając fakt że zdublowałem mysql query to dzięki temu że użyłem mysql_error() dowiedziałem się że mam błąd, który uniemożliwia mi wstawienie rekordu do bazy. I może na tym skupmy uwagę.
Nic się nie dowiedziałeś bo źle napisałeś kod.
poprawiłem kod
$ins = http://www.php.net/mysql_query("INSERT INTO faktury SET data_wprowadzenia='$data_wprowadzenia ', data_faktury='$data_faktury', nr_faktury='$nr_faktury', kwota_brutto='$kwota_brutto', kooperant='$kooperant', rodzaj_wydatku_id='$wydatki', wydatek_sprzedaz_id='$typ', uwagi='$uwagi'"); http://www.php.net/echo http://www.php.net/mysql_error();
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)