Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP codeigniter MVC baza danych, PHP codeigniter MVC baza danych
pmietus4086
post 1.03.2017, 20:50:30
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.03.2017

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


Witam. Wszytkich jestem tu nowy smile.gif
Chciałbym prosić o pomoc. Mianowicie, zaczynam przygodę z Codeigniter i PHP.
Mam zrobioną bazę w Phpmyadmin mysql i teraz mam tabele, powiedzmy produkty a w niej kolumny: id / magazyn / produkt / szt.
Chciałbym coś takiego napisać, że jak kolumna szt. będzie 0, to ma mi cały wiersz usunąć.

Jak to zrealizować? Co napisać w Controlerze, co w modelu, a co w widoku?
Może mi ktoś to objaśnić? Z góry wielkie dzięki.

Pozdrawiam
Go to the top of the page
+Quote Post
Omenomn
post 1.03.2017, 21:39:48
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 4.02.2014

Ostrzeżenie: (20%)
X----


Zacząłbym od angielskiego nazewnictwa.
Następnie dziwnie według mnie chcesz to rozwiązać, uzależniając usunięcie wiersza od wartości kolumny w wierszu.
Jeżeli chcesz usunąć rekord w bazie danych, to tworzysz metodę w kontrolerze np. destroy($id), przyjmującą id wiersza, który chcesz usunąć.
Wywołujesz odpowiedzialny model za tabele, z której chcesz usunąć rekord i usuwasz po id ze zmiennej $id.
Formularz do usuwania tworzysz w widoku.
Usuwanie rekordów należy wykonywać metodą POST, dlatego używasz formularza, a nie zwykły link.

Są tutoriale na temat CodeIgnitera, sam z takich kiedyś korzystałem.
Podsuną Ci wiele rozwiązań i oszczędzisz czas dzięki nim.

Ten post edytował Omenomn 1.03.2017, 21:40:48
Go to the top of the page
+Quote Post
Spawnm
post 1.03.2017, 21:48:10
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Sprawdź mysql trigger
Go to the top of the page
+Quote Post
pmietus4086
post 2.03.2017, 07:23:38
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.03.2017

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


Witam
Dlaczego dziwnie , jeżeli mam produkt w bazie danych którego fizycznie nie ma szt = 0 ...to chce go usunąć z bazy ...
nie chcę tworzyć formularza bo ma mi to automatycznie zrobić ...jeżeli osiągnie zero...
trzeba by było napisać zmienną np taką :
  1. DELETE FROM `nazwa_tabeli` WHERE `szt` = 0 ";

tylko nie wiem czy w modelu??
[MySQL][/MySQL]
Go to the top of the page
+Quote Post
Pyton_000
post 2.03.2017, 07:30:52
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Tam gdzie dokonujesz zapisu zmiany stany magazynowego rzucasz event np. "availability_changed" z ID produktu. Potem robisz sobie EventHandler w którym dla przekazanego stanu robisz sobie DELETE j.w tylko dodatkowo z ID przedmiotu. Tyle
Go to the top of the page
+Quote Post
viking
post 2.03.2017, 07:39:09
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Ach te eventy. Później znajdź panie gdzie co się wykonuje bo popodpinane pińcet zdarzeń. Popieram to co napisał Spawnm. Nawet nie musisz ruszać PHP w takim wykonaniu.


--------------------
Go to the top of the page
+Quote Post
pmietus4086
post 2.03.2017, 13:39:35
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.03.2017

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


Panowie zrobiłem to tak :
  1. $this->db->query('DELETE FROM notes WHERE `szt` = 0;',array($this->input->post('produkty_id')));

Działa mi to
co na to powiecie questionmark.gif?
Go to the top of the page
+Quote Post
Pyton_000
post 2.03.2017, 14:08:14
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


może być, tylko jeszcze pewnie indeks się przyda na pole `szt`, chyba że masz tam raptem 100 produktów to można olać smile.gif
Go to the top of the page
+Quote Post
Omenomn
post 2.03.2017, 18:40:34
Post #9





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 4.02.2014

Ostrzeżenie: (20%)
X----


Cytat
Dlaczego dziwnie , jeżeli mam produkt w bazie danych którego fizycznie nie ma szt = 0 ...to chce go usunąć z bazy ...

Jeżeli czegoś nie ma, to nie powinno tego być w tym przypadku rekordu jak dla mnie, nie znam całej struktury Twojej bazy, także nie będę oceniał.

Trigger też będzie dobrym rozwiązaniem, według mnie tongue.gif odnośnie postu Spawnm'a
Go to the top of the page
+Quote Post
Pyton_000
post 2.03.2017, 18:43:56
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Triggera tak łatwo nie wrzucisz na AWS RDS to tak z ciekawostek.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 06:22