Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak sprawdzić czy istnieje w bazie danych wartość podana w formularzu
Forum PHP.pl > Forum > Przedszkole
illidan92
To mój pierwszy post na tym forum, więc na początku witam wszystkich smile.gif

Dopiero zaczynam programowanie w php, lecz mam już pewien problem i nie mam pomysłu jak go rozwiązać:

Napisałem dość prosty skrypt przetwarzający formularz. W formularzu trzeba podać między innymi imię i nazwisko, a skrypt dodaje je do bazy danych do tabeli o nazwie 'wyniki' do kolumn 'imie' oraz 'nazwisko'. Chciałbym do tego skryptu dodać element który łączyłby się z bazą danych po czym sprawdzał czy w tabeli istnieje już wiersz z takim samym imieniem oraz nazwiskiem. Jeśli istnieje, to skrypt powinien wyświetlić komunikat o zajętości danych, a jeśli nie to kontynuował wykonywanie skryptu przetwarzającego formularza. Myślę, że jest to dość proste do zrobienia, jednak coś mi nie wychodzi, a więc proszę was o pomoc.

Z góry dzięki smile.gif
nowotny
Zanim dodasz dane do bazy robisz zapytanie czy rekord z takimi danymi istnieje... jak istnieje mysql_num_rows zwróci ci '1' (lub więcej jak masz zduplikowane rekordy)... jak nie istnieje zwróci ci '0' i w tym przypadku dodajesz nowe dane do bazy... kwestia jednego ifa...
sadistic_son
wklej kod tego skryptu to sie popatrzy co i jak i cos sie wykombinuje.
illidan92
  1. <?php
  2. $p1 = $_POST['p1'];
  3. $p2 = $_POST['p2'];
  4. $p3 = $_POST['p3'];
  5. $p4 = $_POST['p4'];
  6. $p5 = $_POST['p5'];
  7. $p6 = $_POST['p6'];
  8. $p7 = $_POST['p7'];
  9. $p8 = $_POST['p8'];
  10. $p9 = $_POST['p9'];
  11. $p10 = $_POST['p10'];
  12. $p11 = $_POST['p11'];
  13. $p12 = $_POST['p12'];
  14. $p13 = $_POST['p13'];
  15. $p14 = $_POST['p14'];
  16. $p15 = $_POST['p15'];
  17. $imie = $_POST['imie'];
  18. $nazwisko = $_POST['nazwisko'];
  19.  
  20. $imie = trim($imie);
  21. $nazwisko = trim($nazwisko);
  22.  
  23. if (!$imie || !$nazwisko)
  24. {
  25. echo 'Nie wpisałe? swojego imienia b?dˇ nazwiska. Wróć do poprzedniej strony i uzupełnij dane.';
  26. }
  27.  
  28. if (strlen($imie)>13)
  29. {
  30. echo 'Imię wpisane przez Ciebie przekracza maksymaln? liczbę znaków. Wróć do poprzedniej strony i popraw dane.';
  31. }
  32.  
  33. if (strlen($nazwisko)>13)
  34. {
  35. echo 'Nazwisko wpisane przez Ciebie przekracza maksymaln? liczbę znaków. Wróć do poprzedniej strony i popraw dane.';
  36. }
  37.  
  38.  
  39. $wynik = 0;
  40. if($p1 == 1)
  41. $wynik++;
  42. if($p2 == 3)
  43. $wynik++;
  44. if($p3 == 3)
  45. $wynik++;
  46. if($p4 == 2)
  47. $wynik++;
  48. if($p5 == 3)
  49. $wynik++;
  50. if($p6 == 1)
  51. $wynik++;
  52. if($p7 == 1)
  53. $wynik++;
  54. if($p8 == 3)
  55. $wynik++;
  56. if($p9 == 2)
  57. $wynik++;
  58. if($p10 == 3)
  59. $wynik++;
  60. if($p11 == 1)
  61. $wynik++;
  62. if($p12 == 1)
  63. $wynik++;
  64. if($p13 == 1)
  65. $wynik++;
  66. if($p14 == 2)
  67. $wynik++;
  68. if($p15 == 2)
  69. $wynik++;
  70.  
  71.  
  72.  
  73. echo 'Użytkownik ';
  74. echo $imie;
  75. echo ' ';
  76. echo $nazwisko;
  77. echo ' odpowiedział na ';
  78. echo $wynik;
  79. echo ' z 15 pytań, ';
  80. $wynik = $wynik / 15 * 100;
  81. $wynik = number_format($wynik, 0);
  82. echo "przez co uzyskał wynik $wynik %. ";
  83.  
  84. if ($wynik < 30)
  85. echo 'Jesteś beznadziejny !<br /> <br/>';
  86. if ($wynik >= 30 && $wynik < 50)
  87. echo 'Słabo !<br /> <br/>';
  88. if ($wynik >= 50 && $wynik < 65)
  89. echo 'Nieˇle !<br /> <br/>';
  90. if ($wynik >= 65 && $wynik < 80)
  91. echo 'Dobrze !<br /> <br/>';
  92. if ($wynik >= 80 && $wynik < 95)
  93. echo 'Bardzo dobrze !<br /> <br/>';
  94. if ($wynik >= 95)
  95. echo 'Brawo, Jeste? genialny !<br /> <br/>';
  96.  
  97. @ $db = new mysqli('mysql.cba.pl', 'nick', 'haslo', 'budowakomputera_y0_pl');
  98.  
  99. if (mysqli_connect_errno())
  100. {
  101. echo 'Brak poł?czenia z baz? danych. Twój wynik nie może w tej chwili zostać dopisany do listy rekordów.';
  102. exit;
  103. }
  104. $db->select_db('budowakomputera_y0_pl');
  105.  
  106. $zapytanie = "INSERT INTO wyniki (imie, nazwisko, wynik) VALUES ('$imie', '$nazwisko', '$wynik')";
  107.  
  108. $wysylanie = $db->query($zapytanie);
  109.  
  110. if ($wysylanie)
  111. {
  112. printf("Twój wynik został dodany do listy rekordów.");
  113. }
  114. else
  115. {
  116. printf('Nie udało się dodać twojego wyniku do listy rekordów. Spróbuj później.');
  117. }
  118.  
  119. $db->close();
  120. ?>


Nie zwracajcie uwagi, jeśli uważacie, że coś jest bez sensu napisane winksmiley.jpg Wykombinujecie coś ? smile.gif

ref

próbuje dzisiaj od dwóch godzin i nie wychodzi ;/ Macie jakieś pomysły do tego konkretnego fragmentu kodu ?

ref
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.