Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] duplikat w bazie
Forum PHP.pl > Forum > Przedszkole
stypkalukasz
Witam. Mam skrypcik który dodaje dane do bazy dancyh tj. nazwę klubu i nazwę piłkarza.
Chodzi mi o to że jeżeli w bazie jest jakieś wyrażenie i ja wpiszę je drugi raz to dodaje mi do bazy i w sumie mam dwa identyczne wyrażenia.
Chciałbym aby wyświetlało mi jakiś komunikat gdy w bazie jest już wyrażenie które chcę dodać drugi raz.

  1. <?php
  2.  
  3. $klub=$_POST['klub'];
  4. $tresc=$_POST['tresc'];
  5.  
  6. if (empty($klub) || empty($tresc)) {
  7.  echo 'Nie podano wszystkich potrzebnych danych.';
  8.  exit;
  9. }
  10.  
  11.  
  12. $klub = addslashes($klub); // lepiej mysql_real_escape_string
  13. $tresc = addslashes($tresc);
  14.  
  15. $db = mysql_connect('localhost', 'root', 'krasnal') or die('Nie możnanawiązać połączenia z BD!');
  16.  
  17. mysql_query('USE skarb_kibica') or die('Nie mozna wybrać bazy!');
  18.  
  19. $zapytanie = "insert into dane values ('' , '".$klub."' , '".$tresc."')";
  20.  
  21. $wynik = mysql_query($zapytanie) or die("Błąd zapytania");
  22.  
  23. if ($wynik) {
  24.  echo mysql_affected_rows().' informacje zaktualizowane.'; 
  25. }
  26. ?>
Lee
Przed wrzuceniem sprawdź czy w bazie nie ma takiego wpisu wzorując się na czymś charakterystycznym, albo wg. primary key leć wtedy imho unikniesz duplikowania wpisów
stypkalukasz
Ok, zdecyduję się na numer z primary key.
Może jakieś wskazówki dotyczące tego?
Kiedy mam sprawdzać ten primary key?
Lee
Cytat(stypkalukasz @ 22.09.2007, 09:15:30 ) *
Kiedy mam sprawdzać ten primary key?

W każdą pełnię rolleyes.gif
kony
Mam podobny problem z tymże dane mi się duplikują w momencie gdy dwóch użytkowników doda dane w tej samej sekundzie.

Problem wygląda tak, że zawsze jednemu z nich dodaje 2 razy dane pomimo, że jest skrypt do sprawdzania danych przed wrzuceniem.
Zapewne nie jest to wina skryptu jako takiego (bo dwa razy nie da się dodać tych samych danych), tylko coś z bazą...

Nie wiem jak to wytłumaczyć inaczej

Dwóch ludzi otwiera w tym samym momencie bazę, jednemu dopisuje dane jeden raz a drugiemu 2 razy...

Wiem w czym tkwi problem ale jak zrobić, żeby w momencie gdy tabela jest uzupełniana przez jedną osobę, a druga chce również dodać dane w tym samym czasie, żeby tej drugiej osobie (albo nawet może być i obydwu) wywalało komunikat o tym, że np. "baza jest zajęta spróbuj za moment dodać dane"?
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.