Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie dodawaj danych z formularza do bazy jeżeli te istnieją - jak ?
x X x
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 21.01.2014

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


Chciał bym napisać obsługę wyjątku, który sprawdzi, czy dodawane dane do bazy danych istnieją. Jeżeli tak - wyświetli komunikat, że takie dane już istnieją i zapytanie nie zostanie wykonane.

Powiedzmy, że mam takie zapytanie:

  1. <?php
  2.  
  3. $insert = "INSERT INTO tabela VALUES ('".$_POST['imie']."', '".$_POST['nazwisko']."', '".$_POST['email']."')";
  4.  
  5. $insert_osoba = parent::getDB()->run($insert);
  6.  
  7. echo 'potwierdzenie dodania';
  8.  
  9. ?>


Co teraz zrobić? Znalazłem taką funkcję jak mysql_insert_id(), ale nie wiem czy tutaj ją mogę wykorzystać. Wtedy zapytanie powinno zawierać jeszcze słowo IGNORE.

Tabela tabela pole ID ma unikatowe i uzupełniane automatycznie. Wartość tego pola nie jest przekazywana w formularzu, tylko powyższe dane.

Dodam, że mój formularz jest umieszczony w pętli foreach, więc w zapytaniu wykorzystuje jeszcze zmienną $i, ale to nie jest teraz istotne.

Ten post edytował x X x 27.03.2014, 16:53:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
x X x
post
Post #2





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 21.01.2014

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


Gdy tworzyłem tabelę dopisałem coś takiego na końcu:

  1.  
  2. CONSTRAINT tabela_unique UNIQUE (
  3. prac_id,
  4. imie,
  5. nazwisko,
  6. email
  7. )
  8.  


czyli wziąłem pod uwagę wszystko.

Kwestę z selectem rozważałem, ale chyba nie jest to zbyt poprawna opcja ? Oczywiście da jakiś rezultat, ale można to zrobić chyba inaczej.

Zapytanie SQL:

  1.  
  2. SELECT COUNT(DISTINCT imie, nazwisko, email) AS PRACOWNIK FROM tabela
  3. /* usunąłem z zapytania prac_id */
  4.  


przypisać to do jakiejś zmiennej, i jeżeli jest większe od 0 tzn że taki wpis juz istnieje?

Ten post edytował x X x 27.03.2014, 17:47:11
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: 29.12.2025 - 14:49