Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP + MySQL] Dodanie do bazy
Forum PHP.pl > Forum > Przedszkole
henio
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.
qba10
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...
henio
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>
nospor
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
1010
Ze niby gdzie być chciał mieć te 1024 if? biggrin.gif

hahaha

zem się uśmiał
henio
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
nospor
No przeciez ci podalem w moim ostatnim poscie ten sposob. Ignorujesz ludzi czy jak?
henio
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
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.