[MySql] Dodawanie rekordów do tabeli poprzez formularz


(Lksstudzionka) #1

Witam!

W PhpMyAdmin stworzyłem tabelę o nazwie "tabela". Składa się ona z 10 pól: nr, nazwa, l_meczy, pkt, b_zdobyte, myslnik, b_stracone, l_zwyciestw, l_remisow, l_porazek.

Mam skrypt który rzekomo doda mowe rekordy do tej tabeli:

<?

      $nr = addslashes(htmlspecialchars ($_POST['nr']));

      $nazwa = addslashes(htmlspecialchars ($_POST['nazwa']));

      $l_meczy = addslashes(htmlspecialchars ($_POST['l_meczy']));

      $pkt = addslashes(htmlspecialchars ($_POST['pkt']));

      $b_zdobyte = addslashes(htmlspecialchars ($_POST['b_zdobyte']));

      $myslnik = addslashes(htmlspecialchars ($_POST['myslnik']));

      $b_stracone = addslashes(htmlspecialchars ($_POST['b_stracone']));

      $l_zwyciestw = addslashes(htmlspecialchars ($_POST['l_zwyciestw']));

      $l_remisow = addslashes(htmlspecialchars ($_POST['l_remisow']));

      $l_porazek = addslashes(htmlspecialchars ($_POST['l_porazek']));


      if ($nr && $nazwa && $l_meczy && $pkt && $b_zdobyte && $myslnik && $b_stracone && $l_zwyciestw && $l_remisow && $l_porazek) { 

         mysql_connect ("localhost", "user", "pass") or 

           die ("Nie można połaczyć się z MySQL");

         mysql_select_db ("nazwa bazy") or 

           die ("Nie można połaczyć się z baza");

         $query = "INSERT INTO tabela (nr, nazwa, l_meczy, pkt, b_zdobyte, myslnik, b_stracone, l_zwyciestw, l_remisow, l_porazek".") VALUES ('$nr', '$nazwa', '$l_meczy', '$pkt', '$b_zdobyte', '$myslnik', '$b_stracone', '$l_zwyciestw', '$l_remisow', '$l_porazek', ".

           "now());";

         $wynik = mysql_query ($query);

         print "OK! ".

               "OK!";


      } else {

         print "

Dodaj newsa:

"; print " nr"; print " print "SIZE=60> nazwa:"; print " print " VALUE=\"$nazwa\" SIZE=60> "; print " l_meczy:"; print " print " VALUE=\"$l_meczy\" SIZE=60> "; print " pkt:"; print " print " VALUE=\"$pkt\" SIZE=60> "; print " b_zdobyte:"; print " print " VALUE=\"$b_zdobyte\" SIZE=60> "; print " myslnik:"; print " print " VALUE=\"$myslnik\" SIZE=60> "; print " b_stracone:"; print " print " VALUE=\"$b_stracone\" SIZE=60> "; print " l_zwyciestw:"; print " print " VALUE=\"$l_zwyciestw\" SIZE=60> "; print " l_remisow:"; print " print " VALUE=\"$l_remisow\" SIZE=60> "; print " l_porazek:"; print " print " VALUE=\"$l_porazek\" SIZE=60> "; print ""; print ""; } ?>[/code] i skrypt który wyświetla zawartosć tabeli:
[code] <? mysql_connect ("localhost", "user", "pass") or die ("Nie można połaczyć się z MySQL"); mysql_select_db ("nazwa bazy") or die ("Nie można połaczyć się z baza"); $wynik = mysql_query ("SELECT * FROM tabela ". "ORDER BY pkt"); while ($wynik && $rekord = mysql_fetch_array ($wynik)) { print " ".$rekord['nr'].""; print " ".$rekord['nazwa'].""; print " ".$rekord['l_meczy'].""; print " ".$rekord['pkt'].""; print " ".$rekord['b_zdobyte'].""; print " ".$rekord['myslnik'].""; print " ".$rekord['b_stracone'].""; print " ".$rekord['l_zwyciestw'].""; print " ".$rekord['l_remisow'].""; print " ".$rekord['l_porazek']."\n"; } ?>

Niestety pierwszy skrypt nie działa! Wpisuję wszystkie dane do formularza, skrypt potwierdza wysłanie stosownym komunikatem "OK! OK!", a drugi skrypt nic nie wyświetla (ale napewno działa, bo po dodaniu tych rekordów przez PMA wszystko jest ok!).

  1. Dlaczego pierwszy skrypt nie działa?

  2. Czy można jakoś go przerobić aby wyglądał w ten (http://img392.imageshack.us/img392/4773/tabela0vi.jpg) sposób (Wiem, że trzeba pola forumlarza umieścić w tabelce, ale czy to wszytko?)

  3. Jak posortować wyświetlane rekordy według punktów od największej liczby do najmniejszej (po wpisaniu "ORDER BY pkt" sortuje od najmniejszej do największej)

Pozdrawiam i liczę na pomoc :lol: , mic22


(Fora) #2
  1. prześledz jeszcze raz instert into nie mam jak tego sprawdzic ale nie podoba mi sie now() aszczególnie pazurki " przy nim

    $query = "INSERT INTO tabela (nr, nazwa, l_meczy, pkt, b_zdobyte, myslnik, b_stracone, l_zwyciestw, l_remisow, l_porazek".") VALUES ('$nr', '$nazwa', '$l_meczy', '$pkt', '$b_zdobyte', '$myslnik', '$b_stracone', '$l_zwyciestw', '$l_remisow', '$l_porazek', ".

           "now());";

co to jest "." to ??

$wynik = mysql_query ($query);

wrzuc to w jakiegoś if-a lib dodaj mu die to będziesz wiedział cyz wykonuje to polecenie

i tak jeszcze jakos mi nie pasuje łączenie sie z bazą w tym if-ie

mam nadzieje ze jakos ci pomogłem :slight_smile:

odnośnie tabelki to nie wiem dokładnie o czym mówisz.

a sortowanie to dodaj


(Lksstudzionka) #3

Dzięki filuniu chyba mi pomogłeś :slight_smile:

Chodzi mi o tabele piłkarską. Dokładnie o tabele w której komórkach będą pola formulaża, wpiszę wszystkie drużyny liczbę punktów, meczy itp. Zapisze mi to do bazy danych a inny skryopt to odczyta :slight_smile:


(Fora) #4

hmm aha to normalnie wrzucasz w tabelke wyświetlasz i po kwiatkach :slight_smile:


(Lksstudzionka) #5

czyli jak zrobie tak:

(szare pola-pola folmulaza)

to będzie git?


(Fora) #6

to juz od ciebie zależy :slight_smile: jak to ma wyglądać:slight_smile: i tak btw daj troszke większy ten obrazek bo nic na im nie widać :?


(Lksstudzionka) #7

Zrobiłem wszystko tak jak potrzebowałem i znowu nie wysyła (po unieciu tego now() działało) a jak przerobiłem całkiem na tą "tabelę" to nie wysyła.

<?

      $nr = addslashes(htmlspecialchars ($_POST['nr']));

      $nazwa = addslashes(htmlspecialchars ($_POST['nazwa']));

      $l_meczy = addslashes(htmlspecialchars ($_POST['l_meczy']));

      $pkt = addslashes(htmlspecialchars ($_POST['pkt']));

      $b_zdobyte = addslashes(htmlspecialchars ($_POST['b_zdobyte']));

      $myslnik = addslashes(htmlspecialchars ($_POST['myslnik']));

      $b_stracone = addslashes(htmlspecialchars ($_POST['b_stracone']));

      $l_zwyciestw = addslashes(htmlspecialchars ($_POST['l_zwyciestw']));

      $l_remisow = addslashes(htmlspecialchars ($_POST['l_remisow']));

      $l_porazek = addslashes(htmlspecialchars ($_POST['l_porazek']));


      if ($nr && $nazwa && $l_meczy && $pkt && $b_zdobyte && $myslnik && $b_stracone && $l_zwyciestw && $l_remisow && 


$l_porazek) { 

         mysql_connect ("localhost", "user", "pass") or 

           die ("Nie można połaczyć się z MySQL");

         mysql_select_db ("nazwa bazy") or 

           die ("Nie można połaczyć się z baza");

         $query = "INSERT INTO tabela (nr, nazwa, l_meczy, pkt, b_zdobyte, myslnik, b_stracone, l_zwyciestw, l_remisow, l_porazek) 


VALUES ('$nr', '$nazwa', '$l_meczy', '$pkt', '$b_zdobyte', '$myslnik', '$b_stracone', '$l_zwyciestw', '$l_remisow', '$l_porazek')";

         $wynik = mysql_query ($query);

         print "OK!".

               "OK!";

      } else {

print "";

print "

VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print "
VALUE=\"$nazwa\" SIZE=\"10\"> TYPE=\"text\" NAME=\"pkt\" VALUE=\"$pkt\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"b_stracone\" VALUE=\"$b_stracone\" SIZE=\"10\"> SIZE=\"10\"> NAME=\"l_porazek\" VALUE=\"$l_porazek\" SIZE=\"10\">
"; print ""; print ""; } ?>[/code]


(Fora) #8

a przetwarza ci woogóle zapytanie do SQL ??


(Lksstudzionka) #9

nie wiem :oops:

Nie zmieniałem nic porucz tego formulaża i myśle ze w nim tkwi błąd, ale nie potrafię go wykryc!


(Fora) #10

...

sprawdz to i wtedy daj znać


(Lksstudzionka) #11

dodałem i nic - dalej to samo. Czyli nie wykonuje?

\edit

działa! ale jest inny problem jak w tabelce wpisuje w kazdym wierszu (w polu formulaza) np.

[1.][Nazwa druzyny][30][45][12][-][18][20][9][1]

[2.][Nazwa druzyny1][30][21][23][-][22][17][1][9]

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

[16.][Nazwa druzyny16][30][2][0][-][99][0][2][28]

To skrypt który wyświetla , wyswietla w kazdym wierszu tp co znajduje sie w ostatnim wierszu a nie pokolei to co wpisalem.

[1.][Nazwa druzyny16][30][2][0][-][99][0][2][28]

[2.][Nazwa druzyny16][30][2][0][-][99][0][2][28]

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

[16.][Nazwa druzyny16][30][2][0][-][99][0][2][28]

------+-----+-------

skrypt zapisujący :

a odczytujacy tak:


(Fora) #12

ale tu mic namieszałeś to jezus maria dosłownie :

po pierwsze to jest polecenie do zmany zawartości tabeli a nie do dodawania rekordów ......> użyj instert into

jak zrobisz zapis to i odczyt ci zadziała (skróciłem go do normalnej użytecznej postaci)

$wynik = mysql_query ("SELECT * FROM tabela");

//to jest naglówek tabeli

echo '

|

|

|

|

pkt

|

bz

|

|

bs

|

Z

|

R

|

P

|

'; //tu jest wyswietlanie danych while ($rekord = mysql_fetch_array ($wynik)) { echo "

|

".$rekord['nr']."

|

".$rekord['nazwa']."

|

".$rekord['l_meczy']."

|

".$rekord['pkt']."

|

".$rekord['b_zdobyte']."

|

".$rekord['myslnik']."

|

".$rekord['b_stracone']."

|

".$rekord['l_zwyciestw']."

|

".$rekord['l_remisow']."

|

".$rekord['l_porazek']."

|

"; } ?>[/code]