Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zdublowane wpisy do bazy
Forum PHP.pl > Forum > PHP
adamantd
Witam! Co może być powodem, że po przesłaniu formularza ajaxem czasami do bazy dodają się takie same dwa wpisy zamiast tylko jednego? Gdzie muszę wykonać dodatkowe sprawdzenie żeby wyeliminować ten błąd? Czy szukać problemu po stronie ajaxa czy php?
Z góry dzięki
Szymciosek
Możliwe, że podczas wysyłania danych zapytanie do bazy jest wysyłane 2 razy. Zostaje szukać, ale prędzej obstawiałbym PHP.
Pokaż jakiś kod, będzie łatwiej.
adamantd
  1.  
  2. if($blad == 0){
  3.  
  4. $end_prop_row = $end_prop_row!=''?$end_prop_row:'-';
  5. $distance_prop_row = $distance_prop_row!=''?$distance_prop_row:'-';
  6. $dod_opis_prop_row = $dod_opis_prop_row!=''?$dod_opis_prop_row:'-';
  7.  
  8. dbManager::edycjaBazy("INSERT INTO ".DB_TABLE_ROWER_PROP." VALUES('', '{$_SESSION['id_user']}', '{$data_prop_row}', '{$time_prop_row}', '{$type_prop_row}', '{$rodzaj_prop_row}', '{$przedwiek_prop_row}', '{$lokalizacja_prop_row}', '{$end_prop_row}', '{$distance_prop_row}', '{$dod_opis_prop_row}', '{$data_dod}', '{$rand_key}', '{$_SESSION['id_user']}')");
  9. $idProp = dbManager::selectBySql("SELECT id FROM ".DB_TABLE_ROWER_PROP." WHERE rand_key='{$rand_key}' AND data_dod='{$data_dod}'");
  10. if(is_array($idProp) && count($idProp) > 0) {
  11. $kom = dbManager::edycjaBazy("INSERT INTO ".DB_TABLE_ADD_TO_PROP_USERS." VALUES('', '{$idProp[0]['id']}', 'rower_prop', '{$_SESSION['id_user']}', '{$data_dod}')");
  12. echo $kom ? 'udalo_sie' : '';
  13. } else {
  14. LogFile::AddLog("Nie udało się utworzyć propozycji [ rower_prop ] przez usera o nicku [ {$_SESSION['nick']} ]", __LINE__, __FILE__);
  15. return false;
  16. }
  17.  
  18.  
  19.  
  20. }//end if blad 0
  21.  
  22.  



przekleiłem na żywca -pominąłem validację jest tutaj sam zapis do bazy, większość zapisów do bazy związanych z pewną grupą zakładek jest wykonywana w ten sposób i to właśnie z nimi mam ten problem może to z powodu braku ifa np. po udanym zapisie w ósmej linijce? W momencie kiedy uda się INSERT metoda zwraca mi true może to powinienem wykorzystać?

PROBLEM ROZWIĄZANY

leżał po stronie jquery -zdarzenie na button "click". Wyjątkowo mi przed chwilą zamulał komputer i trwało ze 3 sekundy nim wpis się dodał -klikałem więc po 3 razy i dodawały się 2-3 wpisy.

Wykonałem dodatkowe sprawdzenie -może się komuś przyda jeśli ktoś będzie miał podobny problem dodałem ifa:

  1.  
  2. ..........
  3.  
  4. var msiSpr = 0;
  5. $('#add_rower_prop_formul input[type="button"]').click(function(){
  6. if(msiSpr==0){ msiSpr=1;} else { return false; }
  7.  
  8. //dodatkowa validacja po kliknięciu buttona
  9.  
  10. //ajax
  11.  
  12.  
  13. msiSpr=0;
  14.  
  15. });
  16.  
  17.  
  18.  
  19.  


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