Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak napisać klasę do edycji i dodawania rekordów
arzach
post 10.06.2012, 08:41:57
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Mam taki prosty kodzik i chciałbym napisać go obiektowo by potem wykorzystać go w innych projektach a nie ciągle powtarzać ten sam kod co mam teraz. Proszę na naprowadzenie jak powinna być napisana taka klasa.
  1. $result = mysql_query("");
  2. while($data = mysql_fetch_assoc($result)) // pobieram dane z bazy i generuje linki do edycji i kasowania
  3. {
  4. echo "<a href='".basename($_SERVER['PHP_SELF'])."?edit_id=".$data['id']."'>edytuj</a>";
  5. echo "<a href='".basename($_SERVER['PHP_SELF'])."?del_id=".$data['id']."'>usun</a>";
  6. }
  7.  
  8.  
  9. if(isset($_POST['seve'])){ // sprawdzam czy zostal wyslany formularz
  10.  
  11. if(isset($_POST['edit_id']) && isnum($_POST['edit_id'])){ // sprawdzam czy $_POST['edit_id'] istnieje jak tak edutuje dane jak nie dodaje nowe
  12.  
  13. $result = mysql_query("UPDATE tabela SET mailname='".$_POST['mailname']."' WHERE id='".$_POST['edit_id']."'");
  14.  
  15. } else {
  16.  
  17. $result = mysql_query("INSERT INTO tabela (mailname) VALUES ('".$_POST['mailname']."')");
  18.  
  19. }
  20.  
  21. }
  22.  
  23. echo "<form name='userform' method='post' action='".basename($_SERVER['PHP_SELF'])."'>\n";
  24. echo "<table>\n<tr>\n";
  25. echo "<td>Mail:</td>\n";
  26. echo "<td><input type='text' name='mailname' value='".(isset($_GET['edit_id']) ? $edit['mailname'] : "")."'/></td>\n";
  27. echo "</tr>\n<tr>\n";
  28.  
  29. if (isset($_GET['edit_id']) && is_int($_GET['edit_id'])){
  30.  
  31. $edit = mysql_query("");
  32. $edit = mysql_fetch_assoc($edit);
  33. echo "<input type='hidden' name='edit_id' value='".$_GET['edit_id']."' />"; // Przesyłam ukryte id do edycji
  34.  
  35. }
  36.  
  37. echo "<td align='center' colspan='2'>\n";
  38. echo "<input type='submit' name='seve' value='".(isset($_GET['edit_id']) ? "Edytuj" : "Zapisz")."' /></td>\n";
  39. echo "</tr>\n</table>\n</form>\n";
  40.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
CuteOne
post 11.06.2012, 05:10:59
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Klasa? do tego potrzebował byś całego frameworka... zobacz sobie na Symfony, Zend lub Kohana
Go to the top of the page
+Quote Post
szczemp
post 11.06.2012, 11:35:16
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 9
Dołączył: 9.12.2010

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


znowu bez przesady
nie trzeba całego frameworka
ja do tego napisałbym jakąś klasę do tworzenia formularzy
  1. $formularz = new Formularz;
  2. $formularz->startForm();
  3. $formularz->showInput();
  4. ..
  5. $formularz->endForm()

do tego przyda się walidacja jego pól
  1. $walidacja = new Walidacja();
  2. $walidacja->email();
  3. ..
  4. if ($walidacja->isValid()) {
  5. //walidacja udana
  6. }
  7. else {
  8. //walidacja nie udana
  9. echo $walidacja->showErrors();
  10. }

no coś do obsługi bazy danych
albo użyć biblioteki PDO
Go to the top of the page
+Quote Post
Crozin
post 11.06.2012, 11:43:16
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@szczemp: No to potrzebuje frameworka (biblioteki) do tworzenia formularzy oraz sprawdzania poprawności danych. Dane z/do bazy również przydałoby się mieć w postaci obiektowej, tak więc i bez ORM-a się nie obejdzie. Innymi słowy może sobie to wszystko poskładać z różnych, indywidualnych bibliotek, albo skorzystać z jednego "pełnego frameworka WWW".
Go to the top of the page
+Quote Post
szczemp
post 11.06.2012, 14:46:52
Post #5





Grupa: Zarejestrowani
Postów: 149
Pomógł: 9
Dołączył: 9.12.2010

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


dokładnie słowo biblioteka tu bardziej pasuje niż framework, bo jeśli framework np taki zend ma bardzo rozbudowaną strukturę katalogów, a projekt nie jest wielki i nie potrzebuje zaawansowanych funkcji, to lepiej napisać taką klasę od formularzy i sobie ją używać
wiadomo, że są lżejsze frameworki od zenda i któryś arzach może sobie wybrać do małych projektów
Go to the top of the page
+Quote Post
Crozin
post 11.06.2012, 14:54:38
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@szczemp: Framework/biblioteka to w sumie w wielu przypadkach synonimy.
Cytat
np taki zend ma bardzo rozbudowaną strukturę katalogów, a projekt nie jest wielki i nie potrzebuje zaawansowanych funkcji, to lepiej napisać taką klasę od formularzy i sobie ją używać
Niespecjalnie lepiej, tj. ja przynajmniej nie potrafię znaleźć jakiś pulsów.
Cytat
wiadomo, że są lżejsze frameworki od zenda i któryś arzach może sobie wybrać do małych projektów
Dla małych projektów wielkość czy "ociężałość" takiego Zena jest kompletnie bez znaczenia.
Go to the top of the page
+Quote Post
arzach
post 11.06.2012, 15:23:46
Post #7





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

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


Ja bym chciał napisać klasę ale nie do generowania formularzy tylko taką która odbierze dane z formularza i doda je do bazy bądź edytuje. Chodzi mi tylko o na kierowanie jakby to miał wyglądać.
Połączenie z bazą już sobie sam ogarnę. Nie chciał bym wykorzystywać frameworka bo to ma być do małych projektów.
Go to the top of the page
+Quote Post
Crozin
post 11.06.2012, 16:14:32
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
[...] bo to ma być do małych projektów.
To tym bardziej powinieneś skorzystać z czegoś gotowego.

A uprzedzając odpowiedź. Nie, nie dasz rady teraz zrobić sobie jednej klasy, która to będzie robić, bo tego nie da się zrobić dobrze przy pomocy jednej klasy. OOP ma to do siebie, że wymaga całego "ekosystemu" by miało jakiekolwiek sensowne użycie, a na stworzenie takiego środowiska nie masz w tej chwili szans. Skorzystaj z gotowych narzędzi (to jest w sumie ważniejsza umiejętność niż OOP), naucz się ich obsługiwać, rozbudowywać je, a własne twórz tam gdzie gotowców nie ma, bądź nie spełniają swojego zadania.
Go to the top of the page
+Quote Post
Mephistofeles
post 11.06.2012, 16:45:05
Post #9





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Silex - framework w sam raz do małych projektów.
Masz do dyspozycji komponenty Symfony, w tym Forms, Validator, a nie trzeba tworzyć całej struktury aplikacji.
Poczytaj dokumentację Symfony, Doctrine i będziesz wiedział jak to powinno wyglądać.
Go to the top of the page
+Quote Post
szczemp
post 12.06.2012, 08:07:20
Post #10





Grupa: Zarejestrowani
Postów: 149
Pomógł: 9
Dołączył: 9.12.2010

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


Cytat(Crozin @ 11.06.2012, 15:54:38 ) *
Dla małych projektów wielkość czy "ociężałość" takiego Zena jest kompletnie bez znaczenia.

dla projektu nie jest ale dla serwera już może być
dużo plików = dużo operacji co zajmuje czas i prąd:))
Go to the top of the page
+Quote Post
Mephistofeles
post 12.06.2012, 09:08:51
Post #11





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Nie przesadzaj, nie optymalizuj na siłę. Framework pozwala na wygodne pisanie czytelnych aplikacji, więc czemu mam go nie używać? Narzut będzie bez znaczenia dla małego projektu.
Przejmujesz się zużyciem energii? To nie Ty płacisz rachunki tongue.gif, a nie słyszałem jeszcze o hostingu płatnym w zależności od poboru mocy.
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.07.2025 - 04:11