Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Wprowadzanie danych z formularza ze sprawdzaniem, Kontrola danych
php__amator
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
Daiquiri
post
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Dodaj proszę tagi PHP BBCode do swoich listingów smile.gif.
Go to the top of the page
+Quote Post
php__amator
post
Post #3





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Sorki, następnym razem bardziej sie postaram i ubarwię smile.gif
Go to the top of the page
+Quote Post
pablo_83
post
Post #4





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


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


Ten post edytował pablo_83 26.05.2011, 22:47:45
Go to the top of the page
+Quote Post
php__amator
post
Post #5





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


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
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: 21.08.2025 - 06:25