Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Wprowadzanie danych z formularza ze sprawdzaniem
Forum PHP.pl > Forum > Przedszkole
php__amator
Witam serdecznie wszystkich forumowiczów smile.gif
Jako, że jestem nowym/bardzo początkującym i nie orientuję się do końca gdzie powinienem umieścić moje
pytanie zrobilem to w przedszkolu PHP.
Uznałem, że z moim poziomem tylko tutaj moge wystąpić.

Potrzebuje podpowiedzi "jak", poniewaz moja wiedzia jest na poziomie przed-przedszkola,
oto problem:
wprowadzam dane do bazy, umiem sobie poradzic ze sprawdzeniem pojedynczych elementow
np imie wprowadzane -> czy istnieje w bazie, jesli tak to komunikat "dane znajduja sie w bazie".
Ale jak zrobic zeby sprawdzal mi np: imie i nazwisko czy juz takie istnieje ?
czy zrobic dodatkowa petle dla kazdego nastepnego elementu ?

Oczywiscie wszelkie krytyczne uwagi chetnie poczytam - nie brac prosze pod uwage braku jakich-
kolwiek form zabezpieczenia bo na moim etapie to kompletnie bez znaczenia (choc pewnie lepiej
byloby uczyc sie od razu robic takie rzeczy) smile.gif
Niemniej prosze o wsparcie jak to zrobic.

poniżej list tej mojej produkcji.

Oczywiscie dane z formularza przekazane metodą POST.

<?php
require_once('includes/connection.php');

$check = $_POST['last_name'];
$result = mysql_query("SELECT first_name, last_name FROM drivers", $connection);
if (!$result) {
die("Database query failed: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
echo $row["first_name"].", ".$row["last_name"];
if ($row["last_name"]==$check) {
die(" - name exist in Database ". mysql_error());
}
}
$result = mysql_query("INSERT INTO drivers (otis_nr, first_name, last_name, date_of_birth, lic_number, ni_number, id_type, id_number, bank_details, address, e_mail, telephone_number) VALUES
($_POST[otis_nr], '$_POST[first_name]', '$_POST[last_name]', '$_POST[date_of_birth]', '$_POST[lic_number]', '$_POST[ni_number]', '$_POST[id_type]', '$_POST[id_number]', '$_POST[bank_details]', '$_POST[address]', '$_POST[e_mail]', '$_POST[telephone_number]')");
if (!$result) {
die("Database query failed: " . mysql_error());
} else {
echo "Database query sent !";
}
?>



Zdaje sobie sprawe ze to jest moze beznadziejna/zamotana/haotyczna kompozycja ale ... moja wlasna smile.gif
Daiquiri
Dodaj proszę tagi PHP BBCode do swoich listingów smile.gif.
php__amator
Sorki, następnym razem bardziej sie postaram i ubarwię smile.gif
pablo_83
po 1 umieść kod w tagi PHP.

jeżeli potrafisz sprawdzić pojedynczy element czy istnieje to nic prostszego w przypadku dwóch lub więcej:
  1. $query = mysql_query(Select imie, nazwisko From user where imie = 'twoje_imie' and nazwisko= 'twoje_nazwisko');
  2. $row=mysql_fetch_array($query);
  3. if(mysql_num_rows[$query] > 0) { //ten warunek sprawdza czy zapytanie zwróciło cokolwiek, jeśli tak tzn ze w bazie jest wpis odpowiadający Twoim kryteriom
  4. echo $row['imie']. $row['nazwisko'];
  5. }
  6.  


zastanów się na początek jakie dane mają być unikatowe dla Ciebie bo w przypadku który podałeś obydwie wprowadzone dane moga się powtarzać np jan kowalski występuje bardzo często.
możesz też zrobic to w inny sposób:

  1. $query = mysql_query(Select imie, nazwisko From user);
  2. $row=mysql_fetch_array($query);
  3. if(($row[imie] == $_POST['imie']) && ($row[nazwisko] == $_POST['nazwisko']){
  4. echo 'użytkownik o podanych danych już istnieje';
  5. }
php__amator
Dzieki, druga forma jakby bardziej do mnie przemawia.
Zaraz ją zaimplementuje do mojego przykladu, juz wiem jak to powinno wygladac.
Dziękuję.

Jak tylko wklepię i sprawdzę napiszę.


Wklepałem, sprawdzam i wciąż jest błąd
...

  1. <?php
  2. require_once('includes/connection.php');
  3.  
  4. //$check = $_POST['last_name'];
  5.  
  6. // $question = mysql_query("SELECT first_name, last_name FROM drivers", $connection);
  7. // if (!$question) {
  8. // die("Database query failed: " . mysql_error());
  9. // }
  10. // while ($row = mysql_fetch_array($question)) {
  11. // }
  12. $query = mysql_query("SELECT first_name, last_name FROM drivers", $connection);
  13. $row = mysql_fetch_array($query);
  14.  
  15. // \/\/\/\/\/ tu mi wywala błąd i patrze szukam i niczego nie moge wykminic ...;( \/\/\/\/\/
  16. if (($row[first_name] == $_POST['first_name']) && ($row[last_name] == $_POST['last_name']) {
  17. die (" - This man exists in Database ". mysql_error());
  18. }
  19. $result = mysql_query("INSERT INTO drivers (otis_nr, first_name, last_name, date_of_birth, lic_number, ni_number, id_type, id_number, bank_details, address, e_mail, telephone_number) VALUES
  20. ($_POST[otis_nr], '$_POST[first_name]', '$_POST[last_name]', '$_POST[date_of_birth]', '$_POST[lic_number]', '$_POST[ni_number]', '$_POST[id_type]', '$_POST[id_number]', '$_POST[bank_details]', '$_POST[address]', '$_POST[e_mail]', '$_POST[telephone_number]')");
  21. if (!$result) {
  22. die("Database query failed: " . mysql_error());
  23. } else {
  24. echo "Database query sent !";
  25. }
  26. ?>
  27.  


Nie widze błedu albo juz jest tak pozno smile.gif

Jednak już było za pozno smile.gif
Działa, dzięki
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.