Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Mały problemik, proszę o analizę i pomoc
stypkalukasz
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Witam wszystkich serdecznie.
Pracuję ostatnio nad skrypcikiem dodawania informacji do bazy danych (MySQL). Utworzyłem dwa skrypty. W pierwszym wpisuję dane które mają zostać dodane do bazy danych:
  1. <title>"Polska Piłka Nożna" - aktualizacja danych (kluby)</title>
  2. </head>
  3.  
  4. <h1>"Polska Piłka Nożna" - aktualizacja danych (kluby)</h1>
  5.  
  6. <form action="wstaw_ksiazke.php" method="post">
  7. <table border="0">
  8.  
  9. <tr><td>klub</td><td> <input type="text" name="klub" maxlength="30" size="30"><br /></td></tr>
  10. <tr><td>tresc</td><td> <input type="text" name="tresc" maxlength="60" size="30"><br /></td></tr>
  11.  
  12. <tr><td colspan="2"><input type="submit" value="Zapisz"></td></tr>
  13. </table>
  14. </form>
  15. </body>
  16. </html>


Zadaniem drugiego jest sprawdzenie poprawności wpisanych danych oraz zapisanie ich w bazie danych:
  1. <html>
  2. <head>
  3. <title>"Polska Piłka Nożna" - rezultaty aktualizacji bazy danych (kluby)</title>
  4. </head>
  5. <body>
  6. <h1>"Polska Piłka Nożna" - rezultaty aktualizacji bazy danych (kluby) </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9.  
  10. $klub=$HTTP_POST_VARS['klub'];
  11. $tresc=$HTTP_POST_VARS['tresc'];
  12.  
  13.  
  14. if (!$klub || !$tresc)
  15. {
  16.  echo 'Nie podano wszystkich potrzebnych danych.<br />'
  17. .'Wróć do poprzedniej strony i spróbuj ponownie.';
  18.  exit;
  19. }
  20.  
  21.  
  22. $klub = addslashes($klub);
  23. $tresc = addslashes($tresc);
  24.  
  25.  
  26. @ $db = mysql_pconnect('localhost', 'root', 'krasnal');
  27.  
  28. if (!$db)
  29. {
  30.  echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz 
  31.  
  32. później.';
  33.  exit;
  34. }
  35.  
  36. mysql_select_db('skarb_kibica');
  37. $zapytanie = "insert into dane values ('".$klub."', '".$tresc."')"; 
  38. $wynik = mysql_query($zapytanie);
  39. if ($wynik)
  40. echo mysql_affected_rows().' informacje zaktualizowane.'; 
  41. ?>
  42.  
  43. </body>
  44. </html>


I TU MAM PROBLEM. wPISUJĘ WSZYSKIE DANE I WCISKAM ZAPISZ. POWINIEN SIĘ POJAWIC KOMUNIKAT ZE INFORMACJE ZOSTAŁY ZAKTUALIZOWANE. TYMCZASEM ANI INFORMACJE DO BAZY NIE SA DODANE ANI NIE MA KOMUNIKATU.

Może jakieś propozycje rozwiązania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Z góry dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Zamiast

  1. <?php
  2. $klub=$HTTP_POST_VARS['klub'];
  3. ?>


daj

  1. <?php
  2. $klub = $_POST['klub'];
  3. ?>
Go to the top of the page
+Quote Post
morwo
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 31.05.2006

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


a sprobuj na koncu wstawic "else" i wyswietlic blad, jesli nie uda sie wyslac zapytania do bazy, albo zapytanie bedzie nie wlasciwe (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) przydac sie tez moga funkcje mysql_error i mysql_errno.
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #4





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Cytat(webdicepl @ 15.05.2007, 22:56:16 ) *
Zamiast

  1. <?php
  2. $klub=$HTTP_POST_VARS['klub'];
  3. ?>


daj

  1. <?php
  2. $klub = $_POST['klub'];
  3. ?>


ALE TYLKO ODNOŚNIE klub CZY TEZ DLA tresc TAK ZROBIC??
Go to the top of the page
+Quote Post
morwo
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 31.05.2006

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


wszedzie, gdzie masz $_HTTP_POST_VARS zmien na $_POST
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Zrobiłem według waszych sugestii ale coś nie idze.
Sprawdzaliście może to u siebie lokalnie??
Jak zmieniam na _POST to takie same efekty jak poprzednio. Jak zmieniam na _post to wyświtla ze nie podano wszystkich danych (czy wielkość _POST ma znaczenie?)
Może jeszcze coś jest nie tak.
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #7





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


$_POST, anie $_post!

Spróbuj tak:

  1. <?php
  2. $klub=$_POST['klub'];
  3. $tresc=$_POST['tresc'];
  4.  
  5. if (empty($klub) || empty(!$tresc)) {
  6.  echo 'Nie podano wszystkich potrzebnych danych.';
  7.  exit;
  8. }
  9.  
  10. $klub = addslashes($klub); // lepiej mysql_real_escape_string
  11. $tresc = addslashes($tresc);
  12.  
  13. $db = mysql_pconnect('localhost', 'root', 'krasnal') or die('Nie możnanawiązać połączenia z BD!');
  14.  
  15. mysql_query('USE skarb_kibica') or die('Nie mozna wybrać bazy!');
  16.  
  17. $zapytanie = "insert into dane values ('".$klub."', '".$tresc."')"; 
  18. $wynik = mysql_query($zapytanie) or die("Błąd zapytania");
  19.  
  20. if ($wynik) {
  21.  echo mysql_affected_rows().' informacje zaktualizowane.'; 
  22. }
  23. ?>

Jak nie będzie działać, to napisz jakie są błędy
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #8





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Witam ponownie.
Skrypcik działa chyba OK. Wyskakuje błąd z zapytaniem do bazy danych. Pewnie zapytanie jest błędnę.
Może teraz jakieś subestie co do zapytania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Acha:

BAZA: skarb_kibica

Struktura tabeli dla `dane`

  1. CREATE TABLE `dane` (
  2. `id_klubu` int(11) NOT NULL AUTO_INCREMENT,
  3. `klub` text NOT NULL,
  4. `tresc` text NOT NULL,
  5. PRIMARY KEY (`id_klubu`)
  6. ) TYPE=MyISAM COMMENT='przechowuje informacje o klubach' AUTO_INCREMENT=13 ;



Struktura tabeli dla `pilkarze`


  1. CREATE TABLE `pilkarze` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `klub` text NOT NULL,
  4. `pilkarz` text NOT NULL,
  5. `informacje` text NOT NULL,
  6. PRIMARY KEY (`id`)
  7. ) TYPE=MyISAM COMMENT='przechowuje inf. o piłkarzach' AUTO_INCREMENT=4 ;



##tabela pilkarze w tym przypadku jest nieistotna ale wrzuciłem jej budowe dla pewności (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


--
poprawiłem bbcode. proszę o tym pamiętać.
~siemakuba


Ten post edytował siemakuba 17.05.2007, 21:05:18
Go to the top of the page
+Quote Post
Danone
post
Post #9





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


pierwsza sprawa to JaRoPHP popełnił małą literówkę jest mysql_pconnect a powinno być mysql_connect, ale to pewnie zauważyłeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a druga sprawa...

zapytanie jest takie:

  1. $zapytanie = "insert into dane values ('".$klub."', '".$tresc."')";


a powinno być

  1. $zapytanie = "insert into dane values ('', '".$klub."', '".$tresc."')";
bo id masz auto_increment, cudzyslow powinien być (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

albo pchełki jak to się czasami nazywa...

Ten post edytował Danone 17.05.2007, 20:55:18
Go to the top of the page
+Quote Post
stypkalukasz
post
Post #10





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 8.05.2007

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


Tak, znalazlem dwie literówki. Ale czepia się że zapytanie jest błędne...
Qrcze...pomocy. Od wczoraj nad tym siedze.

JEST OK (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
QRCZE dzięki wielkie za pomoc...
Jak dobrze że "ktoś" wymyslił FORUM (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

POZDRAWIAM!!!


--
Hej, proszę NIE KRZYCZEĆ, doskonale słyszymy i widzimy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
~siemakuba
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #11





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(Danone @ 17.05.2007, 19:44:21 ) *
pierwsza sprawa to JaRoPHP popełnił małą literówkę jest mysql_pconnect a powinno być mysql_connect

Zostałem wywołany to się odzywam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Nie twierdzę, że nie ma literówek - nie sprawdzałem kody, raczej chciałem naprowadzić...

Ale @Danone nie wprowadzaj w błąd:
- mysql_connect" title="Zobacz w manualu PHP" target="_manual,
- mysql_pconnect" title="Zobacz w manualu PHP" target="_manual.
Nie musisz znać wszystkich funkcji, jednak zanim napiszesz, że jakiejś nie ma, to sprawdź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Ten post edytował JaRoPHP 18.05.2007, 16:10:51
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 10:42