Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie użytkownika do bazy
Forum PHP.pl > Forum > Gotowe rozwiązania
Kshyhoo
Witam, nie działa mi skrypt dodawania nowego użytkownika do bazy. Działał, gdy miał nieco mniej pól w formularzu. Po dodaniu kolejnych, wykonuje się bez błędów (bynajmniej nie wyświetla nic), ale do bazy nie dodaje. Nie wiem, czy baza jest zdolna wykonać duże takie zapytanie:
  1. <?php
  2. function dodaj_form()
  3. {
  4. ?>
  5. <form method=post action=\"rejestracja.php\">
  6. <TABLE ALIGN=\"center\" border=0>
  7.  <tr>
  8.  <td colspan=2><b>Dodanie nowego użytkownika</b></td>
  9.  <tr>
  10.  <td>Login:</td>
  11.  <td><input type=text name=login></td>
  12.  </tr>
  13.  <tr>
  14.  <td>Funcja:</td>
  15.  <td><SELECT NAME=\"fucha\" MULTIPLE>
  16.  <OPTION> Dyrektor
  17.  <OPTION> Wychowawca
  18.  <OPTION> Nauczyciel
  19.  <OPTION> Rodzic
  20.  <OPTION> Uczeń
  21.  </SELECT>
  22.  </tr>
  23. // ... tu trochę kodu html ...
  24.  <tr>
  25.  <td>Płeć:</td>
  26.  <td><input type=\"radio\" value=\"m\" name=\"plec\"> Mężczyzna<br>
  27.  <input type=\"radio\" value=\"k\" name=\"plec\"> Kobieta</td>
  28.  </tr>
  29.  <tr>
  30.  <td>Hasło:</td>
  31.  <td><input type=password name=haslo></td>
  32.  </tr>
  33.  <tr>
  34.  <td>Powtórz hasło:</td>
  35. <td><input type=password name=haslo2></td></tr>
  36.  <tr>
  37.  <td colspan=2><b>Hasło do 12 znaków.</b></td>
  38.  </TR>
  39.  <tr>
  40.  <td align=center colspan=2>
  41.  <input type=submit value=\"Zapisz\"></td>
  42.  </tr>
  43.  </TABLE></form>
  44. <?
  45. html_url(&#092;"index.php\", \"Logowanie\");
  46. }
  47.  
  48. function dodaj_usera($login, $fucha, $imie, $nazwisko, $dataur, $miasto, $kod, $adres, $teldom, $telkom, $gg, $tlen, $aqq, $maildom, $mailslu, $plec, $haslo, $haslo2)
  49. {
  50. if ($haslo != $haslo2)
  51. {
  52. echo &#092;"<H3 ALIGN=center>Hasła muszą być identyczne.</h3>\";
  53. dodaj_form();
  54. }
  55. $polaczenie= pol_mysql();
  56. $wynik = mysql_query(&#092;"select * from users where login='$login'\");
  57. if(!$wynik)
  58. return &#092;"Problem: zapytanie z bazy nieudane\";
  59. if (mysql_num_rows($wynik)>0)
  60. {
  61. echo &#092;"<ALIGN=center><b>Użytkownik o takiej nazwie jest już zarejestrowany, spróbuj ponownie</b>\";
  62. dodaj_form();
  63. }
  64. $czas = date(&#092;"j-m-Y-G:i:s\");
  65.  
  66. $zapytanie = &#092;"insert into users values
  67.  ('', '$login', '$fucha', '$imie', '$nazwisko', '$dataur', '$miasto', '$kod', '$adres', '$teldom', '$telkom', '$gg', '$tlen', '$aqq', '$maildom', '$mailslu', '$plec', '$haslo', '$czas')&#092;";
  68. $wynik=mysql_query($zapytanie);
  69. if($wynik)
  70. {
  71. echo &#092;"<H3 ALIGN=center>Rejestracja zakończona pomyślnie</h3>\";
  72. }
  73. return true;
  74. }

Wkleiłem fragment formularza, który poprzedza funkcję dodającą usera do bazy.
SongoQ
  1. <?php
  2.  
  3. $zapytanie = &#092;"insert into users values
  4.  ('', '$login', '$fucha', '$imie', '$nazwisko', '$dataur', '$miasto', '$kod', '$adres', '$teldom', '$telkom', '$gg', '$tlen', '$aqq', '$maildom', '$mailslu', '$plec', '$haslo', '$czas')&#092;";
  5.  
  6. ?>


NIe mozesz tak stosowac bo jak bedziesz mial mnie pol to wstawia CI pokolei do pol jakie wystepuja i moze byc niezgodnosc typow. WIec musisz po users podac wszystkie pola do jakich wstawiasz.

insert into users (pole1, pole2, ...., polen) values .............

2. Zamiast robic funkcje tylu parametrowa przekaz jej tablice.
Kshyhoo
Hmm, coś takiego?
  1. <?php
  2. $zapytanie = &#092;"insert into users ($login, $fucha, $imie, $nazwisko, $dataur, $miasto, $kod, $adres, $teldom, 
    $
  3. elkom, $gg, $tlen, $aqq, $maildom, $mailslu, $plec, $haslo, $haslo2) values
  4.  ('', '$login', '$fucha', '$imie', '$nazwisko', '$dataur', '$miasto', '$kod', '$adres', '$teldom', '$telkom', '$gg', '$tlen', '$aqq', '$maildom', '$mailslu', '$plec', '$haslo', '$czas')&#092;";
  5. $wynik=mysql_query($zapytanie);
  6. ?>

Tablice... trzeba jeszcze się dobrze znać. Na razie, jak widzisz, dłubię po omacku (drugi miesiąc nauczania php)...
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.