Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zagnieżdżona instrukcja warunkowa IF (Problem)
eeagle
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.11.2014

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


Witam. Dopiero co poznaję język programowania PHP i mam problem z odpowiednim zagnieżdżeniem instrukcji warunkowej. Proszę o pomoc.
Jest to prosty formularz z instrukcjami sprawdzającymi czy użytkownik wpisał coś i długość wyrazu. Potrzebuję pomocy w jaki sposób dodać warunek że jeżeli wszystkie dane są poprawne do doda mi je do bazy.
Formularz :
  1. <?php
  2. if (isset($_POST["submit"]))
  3. {
  4. // Sprawdzamy, czy użytkownik zaznaczył pole wyboru i ustawiamy wartość
  5. // odpowiedniej zmiennej
  6. $mailing = false;
  7. if (isset($_POST["mailing"]))
  8. $mailing = true;
  9. // Wyświetlamy formularz z wpisanymi wartościami poszczególnych pól
  10. formularz($_POST["imie"], $_POST["nazwisko"], $mailing);
  11.  
  12. if (empty($_POST["imie"])) { echo "Nie wypełniłeś pola <strong>Imię !</strong><br/>"; }
  13. elseif (strlen($_POST["imie"]) > 20){echo "Za długie Imię - max. 20 znaków <br/>";}
  14. else echo "";
  15.  
  16. if (empty($_POST["nazwisko"])) { echo "Nie wypełniłeś pola <strong>Nazwisko !</strong><br/>"; }
  17. elseif (strlen($_POST["nazwisko"]) > 20){echo "Za długie nazwisko - max. 20 znaków <br/>";}
  18. else echo "";
  19. }
  20. else
  21. {
  22. formularz();
  23. }
  24. ?>


Instrukcja dodająca dane do bazy:
  1. $connection = @mysql_connect('localhost', 'root', '')
  2. or die('Brak połączenia z serwerem MySQL');
  3. $db = @mysql_select_db('baza', $connection)
  4. or die('Nie mogę połączyć się z bazą danych');
  5. $ins = @mysql_query("INSERT INTO users SET imie='$_POST[imie]' , nazwisko='$_POST[nazwisko]',mailing='$_POST[mailing]' ");
  6.  
  7. echo 'Dane zostały przesłane poprawnie.</br>';
  8. echo 'W ciągu 2dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.';

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eeagle
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.11.2014

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


Mam jeszcze pytanie dot. wyświetlania danych i po weryfikacji ich przez klienta dodanie do bazy lub powrót i edycja.
Poniżej kod który wykombinowałem. Wyświetla dane ale nie dodaje ich do bazy (IMG:style_emoticons/default/sad.gif)

  1. <?php
  2. function formularz(
  3. $imie = "",
  4. $nazwisko = "",
  5. $mailing_checked = false ) {
  6. ?>
  7. <div class="wrapper">
  8. <p> Ważne - Certyfikat przedłużonej gwarancji jest ważny dopiero po pomyślnym zakończeniu procesu rejestracji.</br>
  9. Proszę podać następujące informacje:</p>
  10. <!-- Start of FORM -->
  11. <div class="form-container">
  12. <form class="forms" action="" method="post">
  13. <fieldset>
  14. <ol>
  15. <li class="form-row text-input-row">DANE UŻYTKOWNIKA:</li>
  16. <li class="form-row text-input-row">IMIĘ:<input type="text" name="imie" value=<?= $imie; ?>></li>
  17. <li class="form-row text-input-row">NAZWISKO:<input type="text" name="nazwisko" value=<?= $nazwisko; ?>></li>
  18. <li class="form-row text-input-row"><input type="checkbox" name="mailing" value="checked"/>Chcę otrzymywać informacje handlowe</li>
  19. <li><input type="submit" name="test" value="Wyślij"><input type="reset"></li>
  20. </ol>
  21. </fieldset>
  22. </form>
  23. </div>
  24. <?php
  25. }
  26. ?>
  27. <?php
  28. if (isset($_POST["test"]))
  29. {
  30. // Sprawdzamy, czy użytkownik zaznaczył pole wyboru i ustawiamy wartość
  31. // odpowiedniej zmiennej
  32. $mailing = false;
  33. if (isset($_POST["mailing"]))
  34. $mailing = true;
  35. // Wyświetlamy formularz z wpisanymi wartościami poszczególnych pól
  36. formularz($_POST["imie"], $_POST["nazwisko"], $mailing);
  37.  
  38. if (empty($_POST["imie"])) { echo "Nie wypełniłeś pola <strong>Imię !</strong><br/>"; }
  39. elseif (strlen($_POST["imie"]) > 20){echo "Za długie Imię - max. 20 znaków <br/>";}
  40. elseif (empty($_POST["nazwisko"])) { echo "Nie wypełniłeś pola <strong>Nazwisko !</strong><br/>"; }
  41. elseif (strlen($_POST["nazwisko"]) > 20){echo "Za długie nazwisko - max. 20 znaków <br/>";}
  42. else {
  43.  
  44. $result = mysql_query("SELECT 'imie' FROM `users` WHERE imie='$_POST[imie]'") or die('Błąd zapytania');
  45. $row = mysql_num_rows($result);
  46. if($row > 0) {
  47. echo '<p>Już istnieje użytkownik z takim imieniem.</p>';
  48. } else {
  49. ?>
  50. <form action="" method=post>
  51. <p>Twoje dane:</p>
  52. <ul>
  53. <li>Imię: <b><?= ($_POST['imie']); ?></b></li>
  54. <li>Nazwisko: <b><?= ($_POST['nazwisko']); ?></b></li>
  55. <?php
  56. if (isset($_POST['mailing']))
  57. echo "<li>Chcesz otrzymywać informacje handlowe.</li>";
  58. else
  59. echo "<li>Nie chcesz otrzymywać informacji handlowych.</li>";
  60.  
  61. ?>
  62. </ul>
  63. <input type="submit" name="submit" value="Zatwierdź">
  64. </form>
  65. <?php
  66. if (isset($_POST["submit"])){
  67. $ins = @mysql_query("INSERT INTO users SET imie='$_POST[imie]' , nazwisko='$_POST[nazwisko]', mailing='$_POST[mailing]' ");
  68. echo 'Dane zostały przesłane poprawnie.</br>';
  69. echo 'W ciągu 2dni otrzymasz na podany adres email potwierdzenie przyjęcia zgłoszenia.';
  70. }
  71. else echo 'Coś poszło nie tak';}
  72. }
  73.  
  74. }
  75. else
  76. {
  77. formularz();
  78. }
  79.  
  80.  
  81. ?>


Chodzi mi o coś takiego jak na stronie http://www.gajdaw.pl/php/walidacja-formularzy/p9.html -rysunek 2
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 14:50