Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wczytywanie stron nie po ID tylko po TITLE, Wczytywanie stron nie po ID tylko po TITLE
airgucio
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.06.2013

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


Witajcie koledzy

Jestem poczatkujacy więc miejcie dla mnie cierpliwość(IMG:style_emoticons/default/smile.gif) Chciałbym stworzyć na swojej stronie otwieranie strony nie po ID tylko po TITLE czyli zamiast ?page=78 tylko ?page=o-nas
w tym celu w bazie SQL stworzylem wiersz SLUG w którym zapisuje tytuł strony oczywiście zamiast odstepów np o nas zapisuje w bazie to jako: o-nas.

oczywiście w pliku odpowiedzialnym za wyświetlanie stron mam
  1. $gory = mysql_query("SELECT * FROM page WHERE SLUG='".$_GET['page']."'");


I teraz mam pytanie w index.php mam takie coś

  1.  
  2. <?php
  3. if(!empty($_GET['oferta']) && is_numeric($_GET['oferta'])) { include('include/podstrona_oferta.php'); } else {
  4. if(!empty($_GET['page']) && is_numeric($_GET['page'])) { include('include/podstrona_text.php'); } else {
  5. if($_GET['page']=='KONTAKT'){include 'include/kontakt.php';} else {
  6. if($_GET['page']=='KARIERA'){include 'include/kariera.php';} else {
  7. //Strona glowna
  8. include('include/podstrona_main_new.php');
  9. }
  10. }
  11. }
  12. }
  13.  
  14. ?>


Jak w tej funkcji dodać polecenie np
  1. if($_GET['page']=='KARIERA'){include 'include/kariera.php';


żeby zamiast kariera było pobierz z SLUG w bazy SQL i wyświetlało plik kariera.php



Proszę o pomoc i bardzo dziękuję (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
SwiezuPL
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 9
Dołączył: 16.11.2014
Skąd: Warszawa

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


include 'include/'.$zmienna.'.php';

Jeśli to twój cały kod, weź pod uwagę możliwość włamania
Go to the top of the page
+Quote Post
airgucio
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.06.2013

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


dziekuje za odpowiedź ale chodzi mi o to by słowo poniżej KARIERA zastąpić Wierszem z bazy danych SLUG

  1. if($_GET['page']=='KARIERA')



czyli

  1. if($_GET['page']=='$slug')


tyko nie wiem czy to poprawna forma

Ten post edytował airgucio 13.05.2015, 21:03:04
Go to the top of the page
+Quote Post
salfunglandyare
post
Post #4





Grupa: Zarejestrowani
Postów: 150
Pomógł: 31
Dołączył: 10.01.2007
Skąd: Bydgoszcz/Inowrocław

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


masz wynik z SQL, więc nie potrzebujesz ifa do sprawdzenia. Jeśli strona istnieje - jest rekord, jeśli nie - nie ma. Wtedy includujesz plik z szablonem, ew. jeśli strona kontakt ma się różnić wtedy
  1. if($wynik_z_bazy['slug'] == 'kontakt'){
  2. include 'includes/kontakt.php';
  3. }
Go to the top of the page
+Quote Post
airgucio
post
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.06.2013

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


Poradziłem sobie w ten sposób

  1. <?php
  2. if(!empty($_GET['oferta']) && is_numeric($_GET['oferta'])) { include('include/podstrona_oferta.php'); } else {
  3. if(!empty($_GET['page']) && is_numeric($_GET['page'])) { include('include/podstrona_text.php'); } else {
  4. if($_GET['page']=='KONTAKT'){include 'include/kontakt.php';} else {
  5. if($_GET['page']=='KARIERA'){include 'include/kariera.php';} else {
  6.  
  7. $slug = $_GET['slug'];
  8. if($_GET['slug'] == $slug){if($id == $slug){include('include/podstrona_text.php');} } else {
  9.  
  10. //Strona glowna
  11. include('include/podstrona_main_new.php');
  12.  
  13. }
  14. }
  15. }
  16. }
  17. }
  18. ?>
  19.  
  20.  


tylko teraz nie pokazuje mi strony podstrona_main_new mojej głónej ,tylko podstrona_text a chciałbym aby jak nei wpisuje adresu to pokazała się strona glówna
Go to the top of the page
+Quote Post
tomek200
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


To dlaczego dałeś funkcje is_numeric skoro w zmennych przesyłasz nie liczby a text.

EDIT:
Sory nie doczytałem. To powinno zadziałać.
  1. if(!empty($_GET['oferta']) && is_numeric($_GET['oferta'])) {
  2. include('include/podstrona_oferta.php');
  3. } else {
  4. if(!empty($_GET['page']) && is_numeric($_GET['page'])) {
  5. include('include/podstrona_text.php');
  6. } else {
  7. if($_GET['page']=='KONTAKT'){
  8. include 'include/kontakt.php';
  9. } else {
  10. if($_GET['page']=='KARIERA'){include 'include/kariera.php';
  11. } else {
  12. $slug = $_GET['slug'];
  13. if (!empty($slug)) {
  14. if($_GET['slug'] == $slug){
  15. if($id == $slug){
  16. include('include/podstrona_text.php');
  17. }
  18. }
  19. } else {
  20. include('include/podstrona_main_new.php');
  21. }
  22. }
  23. }
  24. }
  25. }


Ten post edytował tomek200 16.05.2015, 15:05:22
Go to the top of the page
+Quote Post
airgucio
post
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.06.2013

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


Witaj

Niestety ten kod nie działa , w przeglądarce gdzie wpisuje adres: link jest widoczny tak jak chce czyli np : page=o-nas, ale nie wyświetla mi podstrona_text czyli moja zawartość podstrony tylko caly czas podstrona_main czyli strona główna.Ale dziekuję za chęci (IMG:style_emoticons/default/smile.gif)

Ten post edytował airgucio 23.05.2015, 13:53:32
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 17:58