Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Mały problemik
Forum PHP.pl > Forum > Przedszkole
stypkalukasz
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 questionmark.gif
Z góry dziękuję i pozdrawiam.
webdice
Zamiast

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


daj

  1. <?php
  2. $klub = $_POST['klub'];
  3. ?>
morwo
a sprobuj na koncu wstawic "else" i wyswietlic blad, jesli nie uda sie wyslac zapytania do bazy, albo zapytanie bedzie nie wlasciwe snitch.gif przydac sie tez moga funkcje mysql_error i mysql_errno.
stypkalukasz
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??
morwo
wszedzie, gdzie masz $_HTTP_POST_VARS zmien na $_POST
stypkalukasz
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.
JaRoPHP
$_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
stypkalukasz
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 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 smile.gif


--
poprawiłem bbcode. proszę o tym pamiętać.
~siemakuba
Danone
pierwsza sprawa to JaRoPHP popełnił małą literówkę jest mysql_pconnect a powinno być mysql_connect, ale to pewnie zauważyłeś 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ć smile.gif

albo pchełki jak to się czasami nazywa...
stypkalukasz
Tak, znalazlem dwie literówki. Ale czepia się że zapytanie jest błędne...
Qrcze...pomocy. Od wczoraj nad tym siedze.

JEST OK exclamation.gif!
QRCZE dzięki wielkie za pomoc...
Jak dobrze że "ktoś" wymyslił FORUM exclamation.gif!

POZDRAWIAM!!!


--
Hej, proszę NIE KRZYCZEĆ, doskonale słyszymy i widzimy winksmiley.jpg
~siemakuba
JaRoPHP
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 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ź smile.gif.
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.