Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja dodawania rekordu do innej tabeli [PHP] [MySQL]
Forum PHP.pl > Forum > PHP
wlodek
Witam,
Napisałem funkcję obsługi przycisku, który dodaje wybrane pola tabeli A do tabeli B.
Funkcja działa prawidłowo. Chciałem jeszcze dodać sprawdzenie warunku, w którym będzie sprawdzone pole idP w tabeli B. Jeśli już istnieje taki rekord to ma wyświetlić komunikat "Rekord o nr (np. 17) już istnieje. Proszę o pomoc.

  1. function On($params, $result)
  2. {
  3. global $dal;
  4. $record = $button->getCurrentRecord();
  5. if ($record["idP"])
  6. {
  7. //dodaje nowy rekord do tabeli zalecenia
  8. $zalecenia = $dal->Table("zalecenia");
  9. $zalecenia->nrP = $record["idP"];
  10. $zalecenia->nrKarty = $record["nrKarty"];
  11. $zalecenia->opisBledu = $record["opis"];
  12. $zalecenia->data = $record["data"];
  13. $zalecenia->Add();
  14. }
  15. $result["txt"] = "Zalecenia zostały dodane";
  16. }


lub ukryć przycisk jeśli taki rekord już jest w tabeli B
nospor
Coraz czesciej zaczynacie uzywac jakis cudnych klas do baz danych, nie napiszecie co to za klasy i oczekujecie, ze my sie bedziemy domyslac lub zgadywac....

Rozwiazanie Twojego problemu:
Przy pomocy cudnej klasy, gdzie tylko Ty wiesz jak ona wyglada, sprawdz czy istnieje w tabeli dany rekord i jak jest, to wyswietl komunikat, ze juz jest
wlodek
Nie ma o co się złościć. W poprzednim temacie mi pomogłeś - za co jestem wdzięczny - i wiesz, że jestem nowicjuszem w PHP jak również, że korzystam z generatora kodu (czy jak to się "fachowo" nazywa) PHPRunner. Kilka problemów sam rozwiązałem korzystając z pomocy oprogramowania PHPRunner, jednak jako żółtodziób wielu zagadnień po prostu nie rozumiem. Brak prawidłowego rozumowania nie jest spowodowane wykształceniem tylko wiekiem. Mam prawie 60 wiosen i gdy ja chodziłem do szkoły komputerów nie było - jedynym "komputerem" był suwak logarytmiczny.

Co do tej "cudnej klasy" jak ją nazwałeś, sam nie wymyśliłem. Jest to owoc modyfikacji kodu z helpu ww programu.
Turson
Pokaż więcej tej klasy, bo nie da się wywnioskować czy to mysql_/mysqli/pdo z takiego kawałka
wlodek
  1. <?php
  2. @ini_set("display_errors","1");
  3. @ini_set("display_startup_errors","1");
  4.  
  5. include("include/dbcommon.php");
  6. include("classes/button.php");
  7.  
  8. $params = (array)my_json_decode(postvalue('params'));
  9. $buttId = $params['buttId'];
  10.  
  11. // proccess table events
  12. if($buttId=='Dodaj_zalecenia11')
  13. {
  14. include("include/protokoly_variables.php");
  15. buttonHandler_Dodaj_zalecenia11($params);
  16. }
  17.  
  18. // proccess non table events
  19.  
  20.  
  21. // create table and non table handlers
  22. function buttonHandler_Dodaj_zalecenia11($params)
  23. {
  24. global $strTableName;
  25. $result = array();
  26.  
  27. // create new button object for get record data
  28. $params["keys"] = (array)my_json_decode(postvalue('keys'));
  29. $params["isManyKeys"] = postvalue('isManyKeys');
  30. $params["location"] = postvalue('location');
  31.  
  32. $button = new Button($params);
  33. $keys = $button->getKeys();
  34.  
  35.  
  36. global $dal;
  37. $record = $button->getCurrentRecord();
  38.  
  39.  
  40. if ($record["idPKT"])
  41. {
  42. //dodaje nowy rekord do tabeli zalecenia
  43. $zalecenia = $dal->Table("zalecenia");
  44. $zalecenia->nrP = $record["idP"];
  45. $zalecenia->nrKarty = $record["nrKarty"];
  46. $zalecenia->opisBledu = $record["opis"];
  47. $zalecenia->data = $record["data"];
  48. $zalecenia->termin = $record["dataTermin"];
  49. $zalecenia->Add();
  50. }
  51. $result["txt"] = "Zalecenia zostały dodane";
  52. ;
  53. echo my_json_encode($result);
  54. }
  55. ?>


dodałem jeszcze jedno pole "termin"
nospor
Cytat
ie ma o co się złościć. W poprzednim temacie mi pomogłeś - za co jestem wdzięczny - i wiesz, że jestem nowicjuszem w PHP jak również, że korzystam z generatora kodu (czy jak to się "fachowo" nazywa) PHPRunner.

1) Nie zloszcze sie. W opisowy sposob staralem ci sie przedstawic pewien "absurd" sytuacji. My naprawde nie jestesmy wrozkami i widzimy pelnych kodow, jakie macie na kompie.
2) I nie, nie wiem, że korzystasz z jakiegos generatora kodu. To ze pomoglem ci w jakims temacie nie znaczy, ze sobie coś zapamietalem. Przez forum przewija się cala masa użytkownikow i naprawde nie idzie spamietac czego uzywa osoba, ktorej raz sie pomoglo...

Nadal nie wiemy w jaki sposob cokolwiek sie robi na Twojej bazie. Miales pokazac kod klasy bazy.
wlodek
Cytat(nospor @ 30.04.2014, 09:02:30 ) *
Nadal nie wiemy w jaki sposob cokolwiek sie robi na Twojej bazie. Miales pokazac kod klasy bazy.


  1. <?php
  2. $strTableName="protokoly";
  3. $_SESSION["OwnerID"] = $_SESSION["_".$strTableName."_OwnerID"];
  4.  
  5. $strOriginalTableName="protokoly";
  6.  
  7. $gstrOrderBy="";
  8. if(strlen($gstrOrderBy) && strtolower(substr($gstrOrderBy,0,8))!="order by")
  9. $gstrOrderBy="order by ".$gstrOrderBy;
  10.  
  11. // alias for 'SQLQuery' object
  12. $gSettings = new ProjectSettings("protokoly");
  13. $gQuery = $gSettings->getSQLQuery();
  14. $eventObj = &$tableEvents["protokoly"];
  15.  
  16. $reportCaseSensitiveGroupFields = false;
  17.  
  18. $gstrSQL = $gQuery->gSQLWhere("");
  19.  
  20. ?>
Turson
W takim tempie to my do niczego nie dojdziemy.
Może po prostu zacznij od początku, np. PDO/MySQLi? Korzystanie z gotowych klas gdzie nie wiadomo o co gdzie chodzi i bez dokumentacji mija się z celem.
machniuk
Panowie powyżej dobrze piszą. Spróbuj zacząć z mysqli, polecam!

Jeśli jednak będziesz nalegać żeby zrobić to z tą klasą, przedstaw nam jej dokumentację.
wlodek
Korzystam z helpu tego oprogramowania: PHPRunner 7.1 manual
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.