Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP + MySQL] Dodanie do bazy
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Moim problemem nie jest to jak się dodaje.
Mam 10 zmiennych ($data_urodzenia && $miejscowosc && $wojewodztwo && $narodowosc && $zainteresowania && strlen($podpis) <= 250 && $zawod && $numer_gg && $numer_tlen && $skype), do których wpisuje dane za pomocą formularza, ale są to pola nie obowiązkowe, więc nie konieczne do wypełnienia.

Zastanawiam się jak zrobić, żeby do bazy dodać tylko te które są wypełnione. Oczywiście mógłbym to zrobić za pomocą konstrukcji if ale przy 10 zmiennych da mi to 1024 możliwości, co z pewnością spowoduje przeciążenie skryptu. Pytam się więc o inny sposób.
Go to the top of the page
+Quote Post
qba10
post
Post #2





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


Jeżeli nie bedziesz chciał wysłać pustych to i tak w bazie MySQL te komórki pozostaną puste wiec moim zaniem dodaj wszytskie zmeinne tradycyjnym sposbem a i tak gdybyś nie dodał tych pustych komórki i tak pozostaną puste...


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
henio
post
Post #3





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Może i ja bym nie chciał, ale jakbym to udostepnim innym użytkownikom internetu, ci mogliby zostawić jakieś kolumny puste,a wtedy w ogóle nie zostało by dodane, bo na razie jak jest skrpyt ustawiony, że wszystko albo nic.

Załączam skrypt:

  1. <?php
  2. include("../admin/funkcje.php");
  3. include("../admin/baza.php");
  4.  
  5. @$nick = @$_POST["nick"];
  6. @$haslo = @$_POST["haslo"];
  7. @$imie = @$_POST["imie"];
  8. @$nazwisko = @$_POST["nazwisko"];
  9. @$data_urodzenia = @$_POST["data_urodzenia"];
  10. @$miejscowosc = @$_POST["miejscowosc"];
  11. @$wojewodztwo = @$_POST["wojewodztwo"];
  12. @$narodowosc = @$_POST["narodowosc"];
  13. @$zainteresowania = @$_POST["zainteresowania"];
  14. @$podpis = @$_POST["podpis"];
  15. @$zawod = @$_POST["zawod"];
  16. @$numer_gg = $_POST["numer_gg"];
  17. @$numer_tlen = $_POST["numer_tlen"];
  18. @$skype = @$_POST["skype"];
  19. @$e_mail = @$_POST["e_mail"];
  20. @$data_dodania = date("Y-m-d, H:i");
  21. @$czy = @$_POST["czy"];
  22.  
  23. if ($nick && $haslo && $imie && $nazwisko && $e_mail && $data_dodania && $czy)
  24. {
  25. $zapytanie1 = mysqli_query($mysql, "SELECT * FROM `forum_uzytkownicy` WHERE nick='".$nick."'" );
  26.  
  27. while ($row = mysqli_fetch_assoc($zapytanie1))
  28. {
  29. naglowek1("Rejestracja nie powiodła się!");
  30. echo "".$nick." jest już zarejestorwany. Musisz podać inny nick!\n";
  31. echo '<br />Nie dodano użytkownika\n';
  32. echo '<br /><br /><a href="rejestruj.php">Wróć do panelu</a>\n';
  33. echo "</div>\n";
  34. }
  35. if($data_urodzenia && $miejscowosc && $wojewodztwo && $narodowosc && $zainteresowania && strlen($podpis) <= 250 && $zawod && $numer_gg && $numer_tlen && $skype)
  36. {
  37. $zapytanie = "INSERT INTO forum_uzytkownicy (nick, haslo, e_mail, imie, nazwisko, data_urodzenia, miejscowosc, wojewodzt
    wo, narodowosc, zainteresowania, podpis, zawod, numer_gg, numer_tlen, skype, data
    _dodania) VALUES ('$nick', '$haslo', '$e_mail', '$imie', '$nazwisko','$data_urodzenia', '$miejscowosc', '$wojewodztwo', '$narodowosc', '$zainteresowania', '$podpis', '$zawod', '$numer_gg', '$numer_tlen', '$skype', '$data_dodania')"
    ;
  38. $wynik = mysqli_query($mysql, $zapytanie) or die('zapytanie: '.$zapytanie.'---blad:'.mysqli_error($mysql));
  39. }
  40. }
  41. elseif(strlen($podpis) > 250)
  42. {
  43. naglowek1("Nowy użytkownik nie został zarejestrowany");
  44. echo "Nowy użytkownik nie został zarejestrowany, podałeś zbyt długi podpis\n";
  45. echo "<br /><br /><a href='rejestruj.php'>Spróbuj jeszcze raz</a>\n";
  46. echo "</div>\n";
  47. }
  48. elseif($czy)
  49. {
  50. naglowek1("Nowy użytkownik nie został dodany do bazy danych");
  51. echo "Brak wszystkich potrzebnych danych";
  52. echo "<br><br><a href='rejestruj.php'>Spróbuj jeszcze raz</a>";
  53. echo "</div>\n";
  54. } 
  55. else
  56. {
  57. naglowek1("Zarejestruj się");
  58. echo "<form action='rejestruj.php' method='POST'>\n";
  59. echo "<table>\n";
  60. echo "<tr><td>Nick: *</td><td><input maxlength='30' type='text' name='nick' style='width: 150px'></td></tr>\n";
  61. echo "<tr><td>Haslo: *</td><td><input maxlength='30' type='password' name='haslo' style='width: 150px'></td></tr>\n";
  62. echo "<tr><td>Adres e-mail: *</td><td><input maxlength='50' type='text' name='e_mail' style='width: 150px'></td></tr>\n";
  63. echo "<tr><td>Imię: *</td><td><input maxlength='45' type='text' name='imie' style='width: 150px'></td></tr>\n";
  64. echo "<tr><td>Nazwisko: *</td><td><input type='text' maxlength='45' name='nazwisko' style='width: 150px'></td></tr>\n";
  65. echo "<tr><td>Data urodzenia:</td><td><input type='text' maxlength='10' name='data_urodzenia' style='width: 150px'></td></tr>\n";
  66. echo "<tr><td>Miejscowość:</td><td><input type='text' maxlength='25' name='miejscowosc' style='width: 150px'></td></tr>\n";
  67. echo "<tr><td>Województwo:</td><td><input type='text' maxlength='20' name='wojewodztwo' style='width: 150px'></td></tr>\n";
  68. echo "<tr><td>Narodowość:</td><td><input type='text' maxlength='30' name='narodowosc' style='width: 150px'></td></tr>\n";
  69. echo "<tr><td>Zainteresowania:</td><td><input type='text' maxlength='40' name='zainteresowania' style='width: 200 px'></td></tr>\n";
  70. echo "<tr><td>Podpis: </td><td><textarea name='podpis' cols='55' rows='7'>Maksymalnie 250 znaków</textarea></td></tr>\n";
  71. echo "<tr><td>Zawód:</td><td><input type='text' maxlength='45' name='zawod' style='width: 150px'></td></tr>\n";
  72. echo "<tr><td>Numer Gadu-Gadu:</td><td><input type='text' maxlength='10' name='numer_gg' style='width: 150px'></td></tr>\n";
  73. echo "<tr><td>Numer Tlen:</td><td><input type='text' maxlength='15' name='numer_tlen' style='width: 150px'></td></tr>\n";
  74. echo "<tr><td>Skype:</td><td><input type='text' maxlength='30' name='skype' style='width: 150px'></td></tr>\n";
  75. echo "<tr><td><input type='hidden' value='czy' name='czy'></td></tr>\n";
  76. echo "<tr><td align='center'><input type='submit' value='Dodaj'></td></tr>\n";
  77. echo "</table></form><br />* - Konieczne do rejestracji<br />Wróć do strony głównej\n";
  78. }
  79.  
  80. ?>
  81. </body>
  82. </html>


Ten post edytował henio 8.12.2007, 12:08:44
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Oczywiście mógłbym to zrobić za pomocą konstrukcji if ale przy 10 zmiennych da mi to 1024 możliwości,
Ze jak? Czy ty choć troche przemyslales swoj algorytm?

Przyklad:
  1. <?php
  2. $woj = empty($_POST['woj']) ? 'null' : "'$_POST[woj]'";
  3. $city = empty($_POST['city']) ? 'null' : "'$_POST[city]'";
  4. //....innne
  5. $sql = "insert into table values ($woj, $city,....inne)";
  6. //...
  7. ?>

Oczywiscie trzeba dodac slashowanie i takie tam, niedodawalem by nie zaciemniac.
MOzna tez inaczej, poprzez okreslenie w zapytaniu jakie pola sie bedzie dodawalo.

ps: i powywalaj te wszystkie malpy @. Nalezy pisac kod tak by sie bledy nie pojawialy a nie wygaszac je


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
1010
post
Post #5





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Ze niby gdzie być chciał mieć te 1024 if? biggrin.gif

hahaha

zem się uśmiał


--------------------
Go to the top of the page
+Quote Post
henio
post
Post #6





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Mam dziesięć zmiennych z których każdy może mieć Tak lub Nie. Więc jeżeli miałeś logikę to powienieneś wiedzieć ze przy 10 zdaniach aby obliczyć możliwości musisz 2 podnieść do 10 potęgi.

Chodzi mi czy istnieje jakiś inny sposób na to aby do bazy danych były dodane tylko te dane, które nie są puste
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No przeciez ci podalem w moim ostatnim poscie ten sposob. Ignorujesz ludzi czy jak?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
henio
post
Post #8





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Cytat(nospor @ 8.12.2007, 13:03:18 ) *
No przeciez ci podalem w moim ostatnim poscie ten sposob. Ignorujesz ludzi czy jak?

Sry ale nie zauważyłem



---
Proszę o zamknięcie tematu

Ten post edytował henio 8.12.2007, 19:56:12
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 Aktualny czas: 20.08.2025 - 08:43