Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ogarniecie plikow/Struktrua kodu
viamarimar
post 2.12.2014, 19:55:53
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


Nie wiem czy temat do konca poprawny ale juz tlumacze o co chodzi. Pisze w php strukturalnym wiec jak juz czytalem na x poratli i tutaj tez nie ma mowy o MVC czy SMARTY. Strukturalny kod ma to do siebie ze troche sie powtarza no ale nie popadajmy w skrajnosc. Trzeba to ograniczac z tad moje pytanie.


Mam przykladowy kod wyswielajacy jakies dane z bazy:


  1. //start skrypt
  2. if (isset($_GET['komunikat']) && mysql_escape_string($_GET['komunikat'] == '5') && (int)($_GET['komunikat'])) {
  3. $wynik = mysql_query("SELECT imie,nazwisko,email FROM users WHERE rank='mod'")
  4. or die('Błąd zapytania');
  5.  
  6. if(mysql_num_rows($wynik) > 0) {
  7. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  8. echo '<table class="table table-striped">';
  9. echo "<tr><td>Imie</td><td>Nazwisko</td><td>Email</td></tr>";
  10. while($r = mysql_fetch_assoc($wynik)) {
  11. echo "<tr>";
  12. echo "<td>".$r['imie']."</td>";
  13. echo "<td>".$r['nazwisko']."</td>";
  14. echo "<td>".$r['email']."</td>";
  15. echo "</tr>";
  16. }
  17. echo "</table>";
  18. }
  19.  
  20. }
  21.  
  22. //koniec skryptu


Jak widac opatrzylem go w GETa juz mniejsza ze nazwya sie komunikat bo to jest do przerobki chodzi o funkcjonalnosc. Plik w ktorym jest ten kod nazywa sie np pracownicy.php
Jakim kodem wywolac tego GETa w index.php gdzie struktura mojego indexa to mniej wiecej

include a - gora strony
include b - srodek

include c - bok

include d - dol strony


Chodzi o to jak zrobic zeby nie pieszac HTML z PHP czy w php zostawic tam np

jakies includy
<div class=conent>

sdasd -- tu if na wywolanie geta przykladowo wyolujacego pracownikow

</div>
jakies includy


1. czy tak by to mialo wygladac?
2. Jak wywolac wspomnianego geta?

no tak bo wywoluje klikajac w menu
  1. echo '<li><a href="pracownicy.php?komunikat=5">Lista pracowników</a></li>


ale chce zeby wykonywalo sie na index ale kod bralo z pracownikow

ew moglbym zrobic index.php?komunikat=5 ale wsadzajac wszystkie ify w indexa zawsyfiny bedzie strasznie kdo i prawie wszystko w indexsie a pliku pracownicy by nie bylo wtedy bo po co?

Ten post edytował viamarimar 2.12.2014, 19:59:23
Go to the top of the page
+Quote Post
snerf
post 2.12.2014, 20:30:32
Post #2





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 30.03.2014

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


A switch?? Rozumiem ze chcesz zrobić podstrony?
P.s skorzystaj z jakiegoś systemu szablonów i rozdziel HTML z PHP.
Go to the top of the page
+Quote Post
ghastblood
post 2.12.2014, 20:36:51
Post #3





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


w sumie to nie rozumiem za wiele z twojej wypowiedzi ale strzelam że wystarczy do tego

  1. switch ($_GET['komunikat']) {
  2. case "5":
  3. include "pracownik.php"
  4. break;
  5. default:
  6. echo "Strona główna";
  7. }


jeźeli będziesz miał link domena.pl/index.php?komunikat=5

zostanie dodany plik pracownik.

odnośnie smarty nie zgodzę się do końca z tym

po bez problemu możesz pobrać dane sobie w pewnej strukutrze wrzucić je do zmiennej

następnie przenieść jest to smarty

  1. $smarty->assign('data', $data);
  2. $smarty->display('index.tpl');


Ten post edytował ghastblood 2.12.2014, 20:42:51
Go to the top of the page
+Quote Post
viamarimar
post 2.12.2014, 20:46:48
Post #4





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


smarty jest obiektowe
jest jakis system /sablon plikow pod struktralne php?

co do tego chodz jestem przeciwnikiem switcha
  1. switch ($_GET['komunikat']) {
  2. case "5":
  3. include "pracownik.php"
  4. break;
  5. default:
  6. echo "Strona główna";
  7. }


rozumiem ze daje to w index ?

ale teraz czy cos typu

  1. if (isset($_GET['komunikat']) && mysql_escape_string($_GET['komunikat'] == '5') && (int)($_GET['komunikat'])) {
  2.  
  3. echo 'ssss'
  4. }


ktore bedzie w innym pliku mi sie wykona? bo o to tu chodzi
Go to the top of the page
+Quote Post
ghastblood
post 2.12.2014, 21:01:30
Post #5





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


tak w pliku index.php dajesz switch i on sobie sprawdzi case '5' i go wyświetli obojętne czy to będzie iclude czy echo odwoła sie do kodu pomiędzy case a break.

Jak nie chcesz bawić się w smarty choć nie widzę żadnej przeszkody możesz zrobić sobie tak

pracwonik.php

  1.  
  2. //zapytania do bazy danych
  3. //zapisujesz wyniki do tablicy/zmiennej
  4. //ladujesz plik z html zapisany jako .php
  5. require_once "tpl/pracownik.php";


tpl/pracownik.php

  1. kod html
  2.  
  3. wczytanie danych z tablicy/zmiennej
  4.  
  5. <?php echo $zmienna;?>
  6.  
  7. z tablicy np foreach
  8. <?php foreach($array as $r):?>
  9. <?php echo $r['dane'];?>
  10. <?php endforeach;?>
  11.  
Go to the top of the page
+Quote Post
Daimos
post 2.12.2014, 21:09:33
Post #6





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(viamarimar @ 2.12.2014, 20:46:48 ) *
co do tego chodz jestem przeciwnikiem switcha


W programowaniu nie ma PO, PISu, czy PSL, albo jest coś potrzebne, albo nie. Przeciwnikiem możesz być rzeczy, które są przestarzałe i złych nawyków. Dla switcha też jest zastosowanie.

Cytat(viamarimar @ 2.12.2014, 20:46:48 ) *
Strukturalny kod ma to do siebie ze troche sie powtarza no ale nie popadajmy w skrajnosc.


Nawet w strukturalnym programowaniu masz funkcje - stworzone po to, aby nie powtarzać kodu.

A co do Twoich problemów
plik index.php:
  1. $zmienna = 1;
  2. include 'pracownicy.php';

plik pracownicy.php:
  1. echo $zmienna;


Sprawdź to i tyle, to są podstawy podstaw, nie zwalaj wszystkiego na to, że robisz strukturalnie, bo nie masz czasu na naukę czy cokolwiek. Przekazywanie zmiennych, include,require to jest coś, od czego zaczyna się programowanie, zanim się przejdzie do pisania funkcji.


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
viamarimar
post 2.12.2014, 23:15:14
Post #7





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


  1. //SWITCH
  2. switch (isset($_GET['s'])) {
  3. case "pracownicy":
  4. include "pracownicy.php";
  5. case "wyloguj":
  6. include "wyloguj.php";
  7. break;
  8. default:
  9.  
  10. echo "Strona główna";
  11. }


juz przy dwoch trzech jest tak ze jesli uzyje np linku

<a href="index.php?s=wyloguj">

to wyswietla sie jednoczesnie zawartosc z pracownicy i wyloguj nie mowiac o tym co jest jak dodaje wiecej plikow, dlaczego tak?
Go to the top of the page
+Quote Post
ghastblood
post 2.12.2014, 23:27:55
Post #8





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


switch

poczytaj, zobacz na swój kod porównaj z przykładami nikt nie będzie cały czas odwalał roboty za ciebie.

Ten post edytował ghastblood 2.12.2014, 23:30:18
Go to the top of the page
+Quote Post
viamarimar
post 2.12.2014, 23:31:28
Post #9





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


//SWITCH
switch (isset($_GET['s'])) {
case "pracownicy":
include "pracownicy.php";
break;
case "wyloguj":
include "wyloguj.php";
break;
default:

echo "Strona główna";
}

jesli chodzi o tego breaka to to nie zmienia faktu ! wydawalo mi sie ze znam konstrukcje a w manulu bylem..

tymbardziej klikajac wyloguj pojawia sie to co jest w pracownikach?
kilkajac pracownicy pojawia sie to co w pracownikach?

a wpisujac .../wyloguj.php w przegladarke dziala normalnie

Ja nie jestem jakims super programista dlatego korzystam z forum, dlatego zadaje pytania, nie programuje na zarobek czy cos.. staram sie czegos dowiedziec zrobic cos kreatywnego, ale..

Ten post edytował viamarimar 2.12.2014, 23:40:25
Go to the top of the page
+Quote Post
ghastblood
post 2.12.2014, 23:40:56
Post #10





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


dobra powiem tobie switch nie działa z isset() musisz sprawdzić warunkiem czy zmienna jest lub zrobić

  1. switch( isset($_GET['s']) ? $_GET['s'] : defaultValue ) {...


nie jestem tego pewien w 100%
Go to the top of the page
+Quote Post
viamarimar
post 2.12.2014, 23:47:13
Post #11





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


  1. if (isset($_GET['s']) && mysql_escape_string($_GET['s'] == 'wyloguj')){
  2. include("wyloguj.php");
  3. }


if za to dziala mowilem ze switcha nie lubie, nie denerwuj sie zaraz wywale warunek i sprawdze

co oznacza "taka skladnia" w sensie znak zapytania, to chyba jest jakis warunek?

tak chodzilo o isseta.:<

Ten post edytował viamarimar 2.12.2014, 23:49:41
Go to the top of the page
+Quote Post
ghastblood
post 2.12.2014, 23:52:50
Post #12





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


jest w manualu w notatkach

(condition ? action_if_true: action_if_false;)

example

(x > y? 'Passed the test' : 'Failed the test')
Go to the top of the page
+Quote Post
Daimos
post 3.12.2014, 19:10:04
Post #13





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


switch można stosować z warunkami, tylko trzeba odwrotnie
  1. switch(true)
  2. {
  3. case ($a==1):
  4.  
  5. break;
  6. case ($a!=2):
  7.  
  8. break;
  9. }

Ale to tak na marginesie. Tutaj akurat wystarczy podstawianie tej zmiennej $_GET, a sprawdzanie, czy istnieje dać wcześniej. Czyli:
[php]
$pageId = isset($_GET['cos']) ? $_GET['cos'] : null;
switch($pageId)
{
// (...)
}


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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: 6.07.2025 - 11:43