Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem polaczenia php z mysql
damianwz24
post 28.01.2013, 21:23:12
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


Witam Wszystkich Forumowiczow,

Mam problem : chcialem sie poloczyc za pomoca php z baza danych mysql i do wczesniej utworzonej tabeli dodac za pomoca php pewna wartosc tekstowa. I po dodaniu nic mi sie nie pojawia zaden komunikat ze inforamcja zostala dodana.. po prostu nic.. przegladarka tkwi w tym samym punkcie, jest tylko odswiezona strona i tyle... Prosze o pomoc.. Mam 2 pliki : jeden konfiguracyjny i drugi zawierajacy formularz:

mysql_connect.inc

<?php

DEFINE (DB_USER,"root");
DEFINE (DB_PASSWORD,"naroznik");
DEFINE (DB_HOST,"localhost");
DEFINE (DB_NAME,"finanse");

$db_connection = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
mysql_select_db(DB_NAME);
?>

-------------------------------------------------------------------------------------------

add_expense_category.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dodawanie kategorii wydatkow</title>
</head>
<body>

<?php

if (isset($HTTP_POST_VARS['submit'])) {

if (strlen($HTTP_POST_VARS['expense_category'])>0) {

require_once ("../mysql_connect.inc");



$query="INSERT INTO kategorie_wydatkow VALUES
(NULL, '{$HTTP_POST_VARS['expense_category']}')";
$query_result=mysql_query ($query);

if($query_result) {
echo '<b><font color="green">Kategoria zostala dodana!</font></b>';
} else {
echo '<b><font color="red">Nie mozna dodac podanej kategorii!</font></b>';
}

mysql_close();

} else {
echo '<b><font color="red">Nie wprowadzono kategorii!</font></b>';

}

} else {
?>
Dodaj nowa kategorie do tabeli kategorie_wydatkow:<br/>

<form action="add_expense_category.php" method="post">
<input type="text" name="expense_category" size="30" maxlength="30"/><p />
<input type="submit" name="submit" value="Wyslij!"/>
</form>

<?php
}
?>
</body>
</html>



Dodam ze obdwa pliki mam w tym samym katalogu C:\Server\www. Bardzo prosze o pomoc gdyz ja swoja przygode z php i mysql dopiero zaczynam. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
kristaps
post 28.01.2013, 21:42:23
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Użyj BBcode. Co do całości, to przede wszystkim zrezygnuj z formatu .inc. Plik z takim rozszerzeniem nie jest parsowany przez PHP, wywołując plik mysql_connect.inc otrzymasz całą jego zawartość. Co do problemu, to sam zobacz:
Cytat
Dodam ze obdwa pliki mam w tym samym katalogu C:\Server\www.

  1. require_once ("../mysql_connect.inc");
Go to the top of the page
+Quote Post
szok
post 28.01.2013, 21:43:31
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 20
Dołączył: 2.03.2006

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


Widze ze zaczynasz się uczyć dostępu do baz z poziomu PHP, odpuśc sobie mysql_connect i cała resztę.
Tym się zainteresuj:
https://www.google.pl/search?q=pdo+tutorial...me&ie=UTF-8


--------------------
Go to the top of the page
+Quote Post
kristaps
post 28.01.2013, 21:44:29
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Włączone raportowanie błędów.

Ten post edytował kristaps 28.01.2013, 21:44:58
Go to the top of the page
+Quote Post
damianwz24
post 28.01.2013, 23:14:19
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


Dzieki Wszsytkim za wskazowki lecz problem dalej pozostal. Projekt musze zrobic na studia wiec dalej musze to wertowac, najchetniej zrobilbym to inna technologia ale nie moge. Zrobilem prosty przyklad polaczenia i wychodzi na to ze php laczy sie baza danych dobrze ale juz nie moge wstawic zadnych informacji. Tabele w bazie sa na 100% ok wiec nie wiem dalej co jest grane. Moze macie jakies pomysly?? Ponizej przedstawiam ten skrypcik :

<html>
<head><title>ufooo</title></head>
<body>
<?php
$polaczenie=@mysql_connect('localhost','root','naroznik') or die("Brak polaczenia z serwerem mysl");

mysql_select_db('finanse'); echo "udalo sie polaczyc";

$query="INSERT INTO kategorie_wydatkow VALUES (NULL, 'Dupa_jasia')";
$query_result=mysql_query ($query);

if ($query_result) {
echo "zapytanie wykonane";

} else { echo "zapytanie nie wykonane"; }
?>
</body>
</html>

Po wykonaniu tego skyrptu mam komunikat "udalo sie polaczyc" oraz " Zapytanie nie wykonane"
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 00:26:52
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Po raz drugi, użyj BBcode. Skrypt nie jest najwyższych lotów, ale działa.

Zamień:
  1. $query_result = mysql_query ($query);

na:
  1. $query_result = mysql_query ($query) or die(mysql_error());
a wszystkiego się dowiesz.

Ten post edytował kristaps 29.01.2013, 00:27:37
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 00:49:48
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


Dzieki Kristaps! sorki za brak BBcode. Ten ostatni przyklad juz dziala poniewaz probowalem wcisnac w rekord tabeli pusta wartosc NULL.Wszystko ok..ale ten pierwszy przyklad kluczowy dla mnie nie dziala mi w dalszym ciagu..Nawet jezeli go zmodyfikuje i umieszcze wybor bazy itpp w jednym pliku php bez zadnych dodatkowych plikow to tez nie dziala. Gdy wpisuje kategorie w pole formularza i klikam "Wyslij" to przegladarka tylko odswieza strone i nie pokazuje komunikatow ze zostalo cos dodane. Przeciez skoro mam dobre polaczenie z baza danych to co moze byc nie tak?? Pomozesz Kristaps?questionmark.gif?
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 01:10:22
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Zrób wszystko jak niżej:

connect.php (tak na marginesie, jak pisał szok, ta metoda łączenia jest niewskazana - ale nie komplikujmy więcej)
  1. <?php
  2.  
  3. DEFINE (DB_USER,"root");
  4. DEFINE (DB_PASSWORD,"naroznik");
  5. DEFINE (DB_HOST,"localhost");
  6. DEFINE (DB_NAME,"finanse");
  7.  
  8. $db_connection = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
  9. mysql_select_db(DB_NAME);
  10. ?>


index.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>Dodawanie kategorii wydatkow</title>
  6. </head>
  7. <body>
  8.  
  9. <?php
  10.  
  11. if (isset($HTTP_POST_VARS['submit'])) {
  12.  
  13. if (strlen($HTTP_POST_VARS['expense_category'])>0) {
  14.  
  15. require_once ("connect.php");
  16.  
  17. $query="INSERT INTO kategorie_wydatkow VALUES (NULL, 'Dupa_jasia')";
  18. $query_result=mysql_query ($query) or die(mysql_error());
  19.  
  20. if($query_result) {
  21. echo '<b><font color="green">Kategoria zostala dodana!</font></b>';
  22. }
  23.  
  24. else {
  25. echo '<b><font color="red">Nie mozna dodac podanej kategorii!</font></b>';
  26. }
  27.  
  28. }
  29.  
  30. else {
  31. echo '<b><font color="red">Nie wprowadzono kategorii!</font></b>';
  32.  
  33. }
  34.  
  35. }
  36.  
  37. else {
  38. ?>
  39. Dodaj nowa kategorie do tabeli kategorie_wydatkow:<br/>
  40.  
  41. <form action="" method="post">
  42. <input type="text" name="expense_category" size="30" maxlength="30"/><p />
  43. <input type="submit" name="submit" value="Wyslij!"/>
  44. </form>
  45.  
  46. <?php
  47. }
  48. ?>
  49. </body>
  50. </html>


Zrób dokładnie takie nazwy plików, odpal formularz i napisz jaki błąd wyskoczył - bo musi być bardzo błahy.
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 01:29:15
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


Zrobilem te dwa pliki dokladnie tak jak pisales i nic...Odpalam formularz wpisuje cos do pola albo wogole nie wpisuje, klikam button wyslij i strona mi sie tylko przeladowywuje w sekunda czy inaczej mowic odswieza.Tak jak mowisz wydaje mi sie ze to bardzo banalny blad, no ale nawet raportowanie bledow nie potrafi do odnalezc..
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 01:32:02
Post #10





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Działasz na localhostcie?
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 01:40:35
Post #11





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


Tak na localhoscie. Odpalam przegladarke wpisuje localhost\index.php i w ten sposob odpalam..Kristaps mozesz sprawdzic czy u Cb dziala questionmark.gif?
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 01:46:07
Post #12





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Podmieniłem dane do bazy i tabeli, w efekcie otrzymuję "Kategoria zostala dodana!". Trochę to dziwne, skoro poprzedni przykład Ci działa. Na 100% masz wyłączone raportowanie błędów.
Go to the top of the page
+Quote Post
CuteOne
post 29.01.2013, 01:47:53
Post #13





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


1. włącz raportowanie błędów
index.php
  1. ini_set('error_reporting', 1);
  2. display_errors(-1);


2. podmień to
  1. if (isset($HTTP_POST_VARS['submit'])) {
  2.  
  3. if (strlen($HTTP_POST_VARS['expense_category'])>0) {

na to
  1. if (isset($_POST['submit'])) {
  2.  
  3. if (!empty($_POST['expense_category'])) {


3. jeżeli nadal nie będzie działało to wstaw
  1. if (isset($_POST['submit'])) {
  2.  
  3. echo '<pre>';print_r($_POST);die();
  4. if (!empty($_POST['expense_category'])) {

i pokaż jakie dane ci się wyświetliły

Ten post edytował CuteOne 29.01.2013, 01:52:27
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 01:48:08
Post #14





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


(display_errors = on w php.ini) CuteOne to lepiej opisał.

Ten post edytował kristaps 29.01.2013, 01:49:19
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 02:14:00
Post #15





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


CuteOne dzieki cos tam zaczelo dzialac ale nie do konca.. Po zastapieniu kodu z punktu 2. po odswiezeniu strony otrzymuje "kategoria zostala dodana", ale skrypt wpisuje wartosc "dupa jasia" do kategorii a ja bym chcial dodac wartosc wprowadzona do formularza..ale dzieki zawsze cos..
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 02:20:55
Post #16





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


  1. $_POST['expense_category']
w tej tablicy masz dane formularza, zapisz je do zmiennej i wrzuć do SQL'a zamiast "dupa jasia".

Pisałeś wyżej, że projekt robisz na studia (pomijając jakie), dobrą praktyką, jeśli nie koniecznością jest filtrowanie danych. Nie wiem czy aby na pewno chcesz w to brnąć, jeśli nie to zmień:

  1. $query="INSERT INTO kategorie_wydatkow VALUES (NULL, 'Dupa_jasia')";

na:
  1. $query="INSERT INTO kategorie_wydatkow VALUES (NULL, $dane_z_formularza')";
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 02:32:58
Post #17





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


dzieki. dziala tylko ze ja w bazie dla tabeli kategorie_wydatkow mam 2 pola: jedno kategoria_id i drugie kategoria_wydatku i kategoria_id nie moze byc pusta tak zaznaczylem a takze jest inkrementowana. Wiec jak w skrypcie mam wartosc NULL to mi sie pojawia komunikat ze nie moge dodac takiej wartosci, co moge zmienic w skrypcie zeby bylo ok questionmark.gif czy musze po prostu zmienic w bazie danych strukture bazy?questionmark.gifO tym filtrowaniu to dopiero bede czytal biggrin.gif
Go to the top of the page
+Quote Post
kristaps
post 29.01.2013, 02:42:07
Post #18





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Co do kategoria_id, to zostaw auto_increment, not null. Jak robisz insert, to po prostu pomijasz kolumne:
  1. $query="INSERT INTO kategorie_wydatkow VALUES ('', '$dane_z_formularza')";

Ewentualnie inny przykład:
  1. INSERT INTO tabela (login,imie,nazwisko,DATA) VALUES('$login','$imie','$nazwisko','$unixtime')"

A struktura tabeli wygląda tak: id, login, imie, nazwisko, data - pomijam id, SQL zajmie się resztą.

Ten post edytował kristaps 29.01.2013, 02:46:03
Go to the top of the page
+Quote Post
damianwz24
post 29.01.2013, 22:30:46
Post #19





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 28.01.2013

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


dzieki Kristaps dziala juz wszystko jak nalezy, Pozdrawiam !
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: 14.08.2025 - 14:18