Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]dodawanie rekordów do bazy msql
Forum PHP.pl > Forum > Przedszkole
kubcio1906
  1. <?php
  2.  
  3. /********************************************************************************
    *********
  4. FUNKCJE POMOCNICZE
  5. ********************************************************************************
    *********/
  6.  
  7. function InitDbConn()
  8. {
  9. //Konfiguracja połączenia z bazą MySQL
  10. $szHost = 'localhost';
  11. $szLogin = 'root';
  12. $szPass = 'qaz';
  13. $szDbName = 'ola';
  14.  
  15. //Połączenie z bazą danych
  16. $oDbConn = mysql_connect( $szHost, $szLogin, $szPass ) or die( 'Błąd: nie udało się nawiązać połączenia z bazą danych.' );
  17.  
  18. //Połączenie ze schematem bazy danych
  19. mysql_select_db( $szDbName ) or die( 'Błąd: nie udało się wybrać schematu bazy danych.' );
  20. }//InitDbConn
  21.  
  22.  
  23. /********************************************************************************
    *********
  24. KOD GŁÓWNY PROGRAMU
  25. ********************************************************************************
    *********/
  26.  
  27. if( isset( $_POST['submit'] ) )
  28. {
  29. //Inicjalizacja połączenie do bazy danych
  30. InitDbConn();
  31.  
  32. //Pobranie zmiennych z formularza
  33. $iId = $_POST['id'];
  34. $szTxt = $_POST['txt'];
  35. $szDupa = $_POST['dupa'];
  36.  
  37. //Zapytanie do DB
  38. $oRes = mysql_query($oDbConn,'INSERT INTO aqq (id, txt, dupa) VALUES ('.$iId.', '.$szTxt.', '.$szDupa.')');
  39. if( $oRes )
  40.  
  41. echo '<p>Poprawnie dodano rekord do bazy danych</p>';
  42.  
  43. else
  44. {
  45. echo '<p>Błąd podczas dodawania rekordu do bazy danych !!</p>';
  46. }//if $oRes
  47. }
  48. else
  49. {
  50. echo '
  51. <form action="" method="POST">
  52. id:<br />
  53. <input type="text" name="id" /><br />
  54. txt:<br />
  55. <input type="text" name="txt" /><br />
  56. dupa:<br />
  57. <input type="text" name="dupa" /><br />
  58. <input name="submit" type="submit" value="dodaj" />
  59. </form>
  60. ';
  61. }//if $_POST["submit"]
  62.  
  63. ?>



Mam taki kodzik smile.gif
Baza danych nazywa się ola, w której znajduję się tabela o nazwie aqq.
formularz się wyświetla lecz z częścią kodu :
  1. echo '<p>Poprawnie dodano rekord do bazy danych</p>';
  2.  
  3. else
  4. {
  5. echo '<p>Błąd podczas dodawania rekordu do bazy danych !!</p>';
  6. }//if $oRes
  7. }
  8. else
  9. {
  10. echo '

potem ukazuje się formularz a pod formularzem kod:
  1. '; }//if $_POST["submit"] ?>


gdy nacisnę przycisk dodaj to w bazie danych nic się nie dodaje...
Proszę o pomoc smile.gif
Mega_88
38: if( $oRes ) { questionmark.gif
kubcio1906
podobno w tym języku nie trzeba używać aż tylu nawiasów:)
nospor
Skoro wyswietla ci sie kod PHP, znaczy ze ten kod nie jest parsowany przez PHP, a traktowany jak zwykly HTML....

1) Czy plik ma rozszerzenie .php?
2) Masz w ogole zaintalowane php?
3) Skrypt rozpoczynasz od <?php ?
kubcio1906
mam zainstalowany wampserver czyli jezyk php powinien działać i korzystam z notepad ++.
Tak skrypt rozpoczyna się od <?php...
Plik ma rozszerzenie .html bo jak ma .php to wyswietla kod na stronie
nospor
Cos masz poknocone..... jak .php moze ci wyswietlac kod na stronie
A masz .html to tez ci wyswietla kod na stronie....

Plik ma miec rozszerzenie .php Masz tak skonfigurowac by dzialalalo.... zacznik od prostego
<?php
echo 'Hello world';
?>

a dopiero potem jak to zadziala, lap sie wyzej
kubcio1906
Za tłumaczenie jezyka powinien być odpowiedzialny serwer Apache (tak?) który się znajduje w WampServer .
Więc jak zapisuje w .php to powinno wyświetlac normalny formularz a nie kod questionmark.gif
nospor
Ale musi byc wgrany apache z php, musi byc prawidlowo skonfigurowany, i skrypty php powinny byc odpalane w przeglądarce adresu publicznego twojego apache.
kubcio1906
kurde... tego to nie ogarne ... Polecisz coś aby mi to zadziałało questionmark.gif gdzie nie trzeba Apache konfigurować itp .
nospor
W necie jest prawdopodobnie cała masa informacji, jak zainstalować poprawnie php.
kubcio1906
ok poszukam i jak coś to się odezwę dzięki smile.gif
Turson
Zainstaluj XAMPPa i po sprawie
kubcio1906
wampserver
tu jest napisane, że po instalacji ów programu nie trzeba nic konfigurować ...
nospor
1) Albo u Ciebie coś źle się zainstalowalo i trzeba jednak cos poprawic
2) ALbo źle odpalasz skrypt. Napisz dokladnie w jaki sposob odpalasz skrypt w przeglądarce
kubcio1906
Mam otwartą bazę danych MySql w notepad++ mam napisany skrypt.
Skrypt jest zapisany w folderze /../Wampserver/www.
Na pasku w Notepad++ wybieram opcję uruchom, a nastepnie uruchom w Chrome i wtedy mi się to wyświetla ... formularz i trochę kodu ...
nospor
No i pewnie tu masz problem....

W przegladarce masz wpisac taki adres:
http://localhost/twoj_skrypt.php
i to ma ci odpalic skrypt php zapisany w glownym katalogu www
johny_s
a jaki adres widnieje w przeglądarce?
kubcio1906
widniał taki: file:///C:/wamp/www/pap.html
zmieniłem na : http://localhost/pap.php
juz jest sam formularz ale.. biggrin.gif po naciśnięciu takie błędy:
( ! )Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\chodzi.php on line 16
( ! ) Notice: Undefined variable: oDbConn in C:\wamp\www\chodzi.php on line 38
( ! ) Warning: mysql_query() expects parameter 2 to be resource, string given in C:\wamp\www\chodzi.php on line 38

nospor
Nom, bardzo dobrze. W koncu udalo ci sie odpalic skrypt php...

Zas co do bledow:
ad1) mysql_ jest juz przestarzale. Przerzuc się na PDO od biedy na mysqli_
2) zmienna $oDbConn nie jest widoczna. Poczytaj w manualu php o zasiegu zmiennych
3) zajrzyj do manuala i doczytaj jakie parametry i w JAKIEJ KOLEJNOSCI przyjmuje mysql_query
kubcio1906
w mysql_ kazał mi gosciu napisac...
a co do 2. mógłbyś powiedzieć coś więcej? czemu nie może być taka zmienna ?
nospor
Jaki gosciu? Nauczyciel? Mafiozo?

ad2) definiujesz zmienną w funkcji, ale poza funkcją ona juz nie jest widoczna. Napisalem: zajrzyj do manuala php do dzialu: ZASIEG ZMIENNYCH
kubcio1906
( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\chodzi.php on line 16
tylko taki błąd został...

i wyswietla komunikat
Błšd podczas dodawania rekordu do bazy danych exclamation.gif



juz zmieniam na mysqli...
johny_s
a to poprawiłeś?
  1. mysql_query($oDbConn,'INSERT INTO aqq (id, txt, dupa) VALUES ('.$iId.', '.$szTxt.', '.$szDupa.')');

to raz, a 2 poszukaj jak jakiegoś tutka jak sie stringi w bazie obsługuje, chyba że txt i 4 litery to są wartości numeryczne
kubcio1906
tak smile.gif wywalilem $oDbConn i 2 bledy poszly w siną dal biggrin.gif ale teraz mam z tym problem :
( ! ) Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in C:\wamp\www\chodzi.php on line 19
johny_s
No ok, ale naprawdze nie potrafisz znaleźć w manualu funkcji mysqli_select_db i sprawdzić jej składni i poronać ze swoją? z każdym błędem tu będziesz pisał?
kubcio1906
jest napisane ze oczekuje 2 parametrow, a gdy 2 wpisuje to oczekuje 1 parametru to be mysqli...
johny_s
pewnie masz zły pierwszy parametr
1 jest linkiem do bazy czyli tym co zwraca mysqli_connect, 2 nazwa bazy, jeśli coś mu nie pasuje z 1 tzn że nie może się z bazą połączyc
wyrzuć co zwraca var_dump(1 parametr) powinno być database resoruce czy coś w tym stylu
kubcio1906
wyrzuca: string 'localhost' (length=9)
johny_s
lol?

wklej tu ten swój skrypt
kubcio1906
  1. /********************************************************************************
    *********
  2. FUNKCJE POMOCNICZE
  3. ********************************************************************************
    *********/
  4.  
  5. function InitDbConn()
  6. {
  7. //Konfiguracja połączenia z bazą MySQL
  8. $szHost = 'localhost';
  9. $szLogin = 'root';
  10. $szPass = 'qaz';
  11. $szDbName = 'ola';
  12.  
  13. //Połączenie z bazą danych
  14. $oDbConn = mysqli_connect( $szHost, $szLogin, $szPass, $szDbName ) or die( 'Błąd: nie udało się nawiązać połączenia z bazą danych.' );
  15. var_dump('localhost');
  16. //Połączenie ze schematem bazy danych
  17. mysqli_select_db( $szDbName ) or die( 'Błąd: nie udało się wybrać schematu bazy danych.' );
  18. }//InitDbConn
  19.  
  20.  
  21. /********************************************************************************
    *********
  22. KOD GŁÓWNY PROGRAMU
  23. ********************************************************************************
    *********/
  24.  
  25. if( isset( $_POST['submit'] ) )
  26. {
  27. //Inicjalizacja połączenie do bazy danych
  28. InitDbConn();
  29.  
  30. //Pobranie zmiennych z formularza
  31. $iId = $_POST['id'];
  32. $szTxt = $_POST['txt'];
  33. $szDupa = $_POST['dupa'];
  34.  
  35. //Zapytanie do DB
  36. $oRes = mysqli_query('INSERT INTO aqq (id, txt, dupa) VALUES ('.$iId.', '.$szTxt.', '.$szDupa.')');
  37. if( $oRes )
  38.  
  39. echo '<p>Poprawnie dodano rekord do bazy danych</p>';
  40.  
  41. else
  42. {
  43. echo '<p>Błąd podczas dodawania rekordu do bazy danych !!</p>';
  44. }//if $oRes
  45. }
  46. else
  47. {
  48. echo '
  49. <form action="" method="POST">
  50. id:<br />
  51. <input type="text" name="id" /><br />
  52. txt:<br />
  53. <input type="text" name="txt" /><br />
  54. dupa:<br />
  55. <input type="text" name="dupa" /><br />
  56. <input name="submit" type="submit" value="dodaj" />
  57. </form>
  58. ';
  59. }//if $_POST["submit"]
  60.  
  61. ?>



wiem głupi jestem biggrin.gif
nospor
Z grzecznosci nie zaprzeczymy.

W manualu masz napisane jakie parametry przyjmuje selectdb.....
http://pl1.php.net/manual/en/mysqli.select-db.php
patrz sekcja PROCEDURAL STYLE
johny_s
Cytat(nospor @ 19.05.2014, 14:34:39 ) *
Zas co do bledow:
2) zmienna $oDbConn nie jest widoczna. Poczytaj w manualu php o zasiegu zmiennych

tego punktu jeszcze nie poprawiłeś, a localhostem mi poprawiłeś humor na cały dzień smile.gif

chociaż nei w sumie link do połączenia nie jest Ci później potrzebny, ale mysqli_select_db dalej Ci się parametry nie zgadzają
kubcio1906
$mysqli = new mysqli("localhost", "my_user", "my_password", "test"); ten test to jest nazwa bazy danych ?
a potem jest napisane "world".. nie rozkminie tego.
nospor
Nie mieszaj.... albo uzywasz stylu obiektowego mysqli albo proceduralnego mysqli...... Do tej pory uzywales proceduralnego i ja z moim linkiem odeslalem cie bys spojrzal do sekcji proceduralnej.... NIE MIESZAJ.
kubcio1906
dobra poszło... jeszcze jakiś błąd ale poszukam jak to rozwiązać

$oRes = mysqli_query($oDbConn, 'INSERT INTO aqq VALUES ('.$iId.', '.$szTxt.', '.$szDupa.')');

tu mam błąd ...
jak nie będzie ostatnim to wale to ...
nospor
jaki znowu blad.....?
johny_s
jak to jaki, zapisu stringa do bazy wink.gif
no i pewnie dalej linka do bazy mu brakuje
chociaż diabli wiedząbo raz wkleja kod z linkiem raz bez..
kubcio1906
mam chodzi smile.gif
teraz potrzebuje włożyć do kodu kolejny przycisk z funkcja show/hide.
nospor
Cytat
teraz potrzebuje włożyć do kodu kolejny przycisk z funkcja show/hide.
Ty nas się o coś teraz pytasz czy informujesz? Bo jak informujesz to naprawde nie jestesmy az tak ciekawi co robisz w danej chwili.
Jak zaś pytasz, to pytaj konkretnie, a nie jakiś ogolnik ni z gruszki ni z pietruszki
kubcio1906
  1. <?php
  2.  
  3. /********************************************************************************
    *********
  4. FUNKCJE POMOCNICZE
  5. ********************************************************************************
    *********/
  6.  
  7.  
  8. //Konfiguracja połączenia z bazą MySQL
  9. $szHost = 'localhost';
  10. $szLogin = 'root';
  11. $szPass = 'qaz';
  12. $szDbName = 'ola';
  13.  
  14. //Połączenie z bazą danych
  15. $oDbConn = mysqli_connect( $szHost, $szLogin, $szPass, $szDbName ) or die( 'Błąd: nie udało się nawiązać połączenia z bazą danych.' );
  16.  
  17. //Połączenie ze schematem bazy danych
  18. mysqli_select_db( $oDbConn, $szDbName ) or die( 'Błąd: nie udało się wybrać schematu bazy danych.' );
  19.  
  20. //Funkcja show/hide
  21. <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
  22. <script type="text/javascript">
  23.  
  24. $(document).ready(
  25.  
  26. function()
  27. {
  28. ("#okno").click(
  29. function()
  30. {
  31. $("#form").show("slow", function() { alert ('Właśnie pokazałeś formularz');
  32. });
  33. });
  34. });
  35. </script>
  36.  
  37.  
  38. /********************************************************************************
    *********
  39. KOD GŁÓWNY PROGRAMU
  40. ********************************************************************************
    *********/
  41.  
  42. if( isset( $_POST['submit'] ) )
  43. {
  44.  
  45.  
  46. //Pobranie zmiennych z formularza
  47. $iId = $_POST['id'];
  48. $szTxt = $_POST['txt'];
  49. $szDupa = $_POST['dupa'];
  50.  
  51. //Zapytanie do DB
  52.  
  53. $oRes = mysqli_query($oDbConn, "INSERT INTO aqq (id, txt, dupa) VALUES ('.$iId.', '.$szTxt.', '.$szDupa.')");
  54. if( $oRes )
  55.  
  56. echo '<p>Poprawnie dodano rekord do bazy danych</p>';
  57.  
  58. else
  59. {
  60. echo '<p>Błąd podczas dodawania rekordu do bazy danych !!</p>';
  61. }//if $oRes
  62. }
  63. else
  64. {
  65. echo '
  66. <form action="" method="POST">
  67. id:<br />
  68. <input type="text" name="id" /><br />
  69. txt:<br />
  70. <input type="text" name="txt" /><br />
  71. dupa:<br />
  72. <input type="text" name="dupa" /><br />
  73. <input name="submit" type="submit" value="dodaj" />
  74. <input name="submit" type="submit" value="pokaz" id="okno" />
  75. </form>
  76. ';
  77. }//if $_POST["submit"]
  78.  
  79. ?>


wyskakuje błąd:
syntax error, unexpected '<' in C:\wamp\www\chodzi.php on line 21


to jak mam dodać funkcje show/hide w jquerty jak wywala ten znak < ? Pomocy
johny_s
np tak samo jak wyświetlasz formularz?
kubcio1906
zrobiłem to tak .
Wywaliłem tą funkcję przed skrypt php i już błąd nie wyskakuje ale przycisk nie działa ...
Odniosłem się przecież do formularza, a gdy nacisnę na przycisk to nic się nie dzieję.
johny_s
no ale przecież tam nigdzie nie masz elementu z id form (przynajmniej w tym kodzie który podałeś nie widze, ale wiem, że często bywam ślepy)
kubcio1906
  1. $(document).ready(
  2.  
  3. function()
  4. {
  5. ("#pokaz").click(
  6. function()
  7. {
  8. $("#form1").show("slow");
  9.  
  10. });
  11. $("#ukryj").click(
  12. function()
  13. {
  14. $("#form1").hide("slow");
  15. });
  16. });
  17. </script>
  18. <input name="submit" type="submit" id="pokaz" value="pokaz" />
  19. <input name="submit" type="submit" id="ukryj" value="ukryj" />

tak zmieniłem funkcję, a tak zrobiłem w formularzu:
  1. <div style="border: solid #152373 1px">
  2. <form action="" id="form1" method="POST">
  3. id:<br />
  4. <input type="text" name="id" /><br />
  5. txt:<br />
  6. <input type="text" name="txt" /><br />
  7. dupa:<br />
  8. <input type="text" name="dupa" /><br />
  9. <input name="submit" type="submit" value="dodaj" />
  10.  
  11. </form>


niestety nie działa .
johny_s
to może z łaski swojej odpalisz konsole błędów i sprawdzisz czym Ci sypie?

http://jsfiddle.net/36Y2d/ i masz znajdź różnice i nie wracaj więcej
kubcio1906
Dzięki. Na tej stronce wszystko śmiga.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.