Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przenoszenie między tabelami.
Forum PHP.pl > Forum > Przedszkole
bolus150
Witam można napisać jakieś zapytanie żeby PRZENIOSŁO rekord z bazy_1 do bazy_2. Specjalnie podkreśliłem słowo przeniosło, bo u wujka google pełno informacji jak przekopiować np ta:
  1. INSERT INTO tabela2 SELECT * FROM tabela1 WHERE id='1'
, a ja chcę zrobić takie archiwum i chciałbym, żeby po naciśnięciu przycisku "usuń" rekord się nie usuwał tylko przenosiło go do tabeli "archiwum_news". Pomoże ktoś?
mmmmmmm
1. Operacja to wspomniany INSERT
2. to DELETE z TAKIMI SAMYMI warunkami.
3. Innej opcji nie ma. A i sam DELETE jest niebezpieczny ze względu na np. klucze obce i więzy integralnościowe. Przy dobrym DELETE czysścisz sobie bazę z danych - pozostają tylko słowniki.
EDIT:
Aler widzę, że w towim przypadku potrzebna jest ci tylko flaga - widoczny/nie.
bolus150
A jak te flagi się robi??
mmmmmmm
normalnie - jako dodatkowe pole w tabeli. przy ka zdym rekordzie w polu `widoczny` wpisujesz 0 lub 1 w zależnoścvi od tego, czy ma być pokazywany, czy tez nie.
i oczywiście musisz dawać ten warunek we where
Pyton_000
To już równie dobrze może dodać pole `archived` i ustawiać 0/1. Bez żadnego przenoszenia.
bolus150
Po głębszym zastanowieniu wziąłem się do pisania funkcji. Zarys ma być mniej więcej taki. Jeżeli w tabeli status = 0 to ma wyświetlić a jeżeli status = 1 to ma nie wyświetlić.
I o to moje wypociny

  1. function get_news_data($id = -1) {
  2. if($id == -1) {
  3. $id = $rows['id'];
  4. }
  5. $result = mysql_query("SELECT * FROM $tbl_name WHERE `id` = '{$id}' LIMIT 1");
  6. if(mysql_num_rows($result) == 0) {
  7. return false;
  8. }
  9. return mysql_fetch_assoc($result);
  10. }
  11.  
  12. function news_view() {
  13. global $news;
  14. if ($news['status'] = 0) {
  15. return true;
  16. } else {
  17. return false;
  18. }
  19. }
  20. function news_archiwum() {
  21. global $news;
  22. if ($news['status'] = 1) {
  23. return true;
  24. } else {
  25. return false;
  26. }
  27. }
  28.  


Może mnie ktoś na prowadzić na dobrą drogę?

Poradziłem sobie w ten sposób :
  1. $sql="SELECT * FROM $tbl_name WHERE STATUS = '0' ORDER by id DESC";


Chociaż jestem ciekawe czy dało by rade zrobić to w łatwiejszy sposób.
Pyton_000
nie, możesz odwrotnie STATUS <> 1
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.