Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Polskie znaki nie przechodzą do bazy, Problem z formularzem/mysql
bombas51
post 1.03.2013, 22:07:29
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.10.2011

Ostrzeżenie: (0%)
-----


Witam, mam problem stworzyłem formularz którego zadaniem jest dodawanie rekordów do bazy. Sprawa się komplikuje gdy zamieszczam polskie znaki.
Tekst nie dochodzi wcala bądź dochodzi urwany.

Przejdzmy do kodziku

config.php

  1. <?php
  2. $host_name = 'localhost';
  3. $user_name = 'u...l';
  4. $pass_word = 'k......yl';
  5. $database_name = 'u....al';
  6.  
  7. $conn = mysql_connect($host_name, $user_name, $pass_word) or die ('Error connecting to mysql');
  8. mysql_select_db($database_name);
  9.  
  10. mysql_query('SET CHARSET utf8');
  11. ?>


dodaj.php

  1. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  2. </head>
  3. <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
  4. <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
  5.  
  6.  
  7. <form action="" method="post">
  8.  
  9. nazwa: <input type="text" name="nazwa">
  10. <br/>wynalazca: <input type="text" name="wynalazca">
  11. <br/>narodowosc: <input type="text" name="narodowosc">
  12. <br/>data wynalezienia: <input type="text" name="data_wyn">
  13.  
  14. <br/>treść <textarea name="tresc" rows="20" cols="50"></textarea>
  15. <br/><input type="submit" value="Dodaj"></form>
  16.  


  1. <?php
  2. include("config.php");
  3. header("Content-Type: text/html; charset=utf-8");
  4.  
  5. $nazwa = $_POST['nazwa'];
  6. $wynalazca = $_POST['wynalazca'];
  7. $narodowosc = $_POST['narodowosc'];
  8. $data_wyn = $_POST['data_wyn'];
  9. $tresc = $_POST['tresc'];
  10.  
  11.  
  12. if($nazwa and $wynalazca and $narodowosc and $data_wyn and $tresc) {
  13.  
  14. $ins = @mysql_query("INSERT INTO wynalazki SET nazwa='$nazwa', wynalazca='$wynalazca', data='now()', data_wynalezienia='$data_wyn', narodowosc='$narodowosc', tresc='$tresc'");
  15.  
  16. if($ins) echo "Rekord został dodany poprawnie";
  17. else echo "Błąd nie udało się dodać nowego rekordu";
  18.  
  19. }
  20.  
  21. ?>


Proszę o pomoc sam nie mogę sobie poradzić
Go to the top of the page
+Quote Post
kamil_lk
post 1.03.2013, 22:49:54
Post #2





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

Ostrzeżenie: (0%)
-----


Miałem ten sam problem.
Wystarczyło zmienić kodowanie podczas tworzenia bazy w panelu PhpMyAdmin.
Go to the top of the page
+Quote Post
_Borys_
post 2.03.2013, 00:46:23
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


Zmień kodowanie pliku z formularzem.

Ten post edytował _Borys_ 2.03.2013, 00:48:30
Go to the top of the page
+Quote Post
bombas51
post 2.03.2013, 07:52:09
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.10.2011

Ostrzeżenie: (0%)
-----


Wielkie dzięki chyba działa smile.gif
Mam tylko jeszcze pytanko: Dlaczego rekordy do bazy nie dostają kolejnego 'id' np jak wyczyszczę tabele to zamiast id 1 rekord dostaje np 45 ?

  1. id int(11) Nie Brak AUTO_INCREMENT
Go to the top of the page
+Quote Post
mortus
post 2.03.2013, 08:04:09
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Ponieważ informacja o kolumnach "specjalnych" (jak np. klucze główne, indeksy) przechowywana jest w systemie bazodanowym. Aby zresetować numerowanie możesz użyć zapytania:
  1. ALTER TABLE `tabela` AUTO_INCREMENT = 1;

Alternatywnie trzeba tabele usunąć i utworzyć jeszcze raz.
Go to the top of the page
+Quote Post
bombas51
post 2.03.2013, 09:56:04
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.10.2011

Ostrzeżenie: (0%)
-----


Naprawdę wielkie dzięki, ostatnim moim problemem jest data - do bazy dodawana jest jako "0000-00-00 00:00:00" zamiast np. 2013-03-01 20:02:16
Go to the top of the page
+Quote Post
_Borys_
post 2.03.2013, 13:21:35
Post #7





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


Spróbuj NOW() bez apostrofów.

Ten post edytował _Borys_ 2.03.2013, 13:24:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:11