Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Pobieranie tytułu dla każdej podstrony
laik-php
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Mam problem. Nie działa mi mój kodzik:

Kod
<?php
........

  $connect = mysql_connect($mysql_host, $mysql_login, $mysql_password);
   if (!$connect) {
    die("Nie połączono");
}

  $mysql_db = mysql_select_db($mysql_base, $connect);
   if (!$mysql_db) {
    die("Nie połączono");
}


$id   = $_REQUEST["id"];
$page = isset($_REQUEST["page"])?($_REQUEST["page"]):"1";

function title() {
if($page==$id)
  $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");
   if ($wynik)
    $dane = mysql_fetch_array($wynik);
    $id    = $dane['id'];
    $title = $dane['title'];
    echo "$title";
}
?>

+
Kod
  <link rel="Stylesheet" type="text/css" href="/css/style.css" />
  <link rel="Shortcut icon" href="/img/favicon.ico" type="image/x-icon" />
  <title><?php if ($page==$id) { title(); } ?></title>


Będę chciał tak jeszcze zrobić z content, keywords, description ... ale to później jak uda się z tytułem coś wymyślić.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 30)
krzysztof_kf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Wiesz że podprogram

  1.  


trzeba odwoływać się za pomocą kolejny numerów pól rekordów

a

  1.  
  2.  


można za pomocą nazw pól .
Go to the top of the page
+Quote Post
laik-php
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


zmieniłem to ale i tak nic nie daje ....
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #4





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Co ci wyświetla ?
Go to the top of the page
+Quote Post
laik-php
post
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


właśnie nic, dalej nie widzę tytułu strony mimo ze w bazie w pierwszym rekordzie jest: przykładowy tytuł

chyba ze jest juz w necie gotowy skrypt, albo ktos ma taki kod (IMG:style_emoticons/default/winksmiley.jpg) (IMG:style_emoticons/default/winksmiley.jpg)

pomoże ktoś (IMG:style_emoticons/default/winksmiley.jpg) (IMG:style_emoticons/default/questionmark.gif)

Ten post edytował laik-php 4.07.2010, 12:05:41
Go to the top of the page
+Quote Post
H4eX
post
Post #6





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Sprawdź w ogóle na jakiejś podstronie czy ta funkcja Ci działa, po prostu ją wywołaj, jeżeli nie to sprawdź po kolei co działa i tak się dowiesz co nie śmiga (IMG:style_emoticons/default/smile.gif)

  1. function title() {
  2. if($page==$id)
  3. $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");
  4. if ($wynik)
  5. $dane = mysql_fetch_array($wynik);
  6. $id = $dane['id'];
  7. $title = $dane['title'];
  8. echo "$title";
  9. }


Ten post edytował H4eX 4.07.2010, 15:20:14
Go to the top of the page
+Quote Post
laik-php
post
Post #7





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Zrobiłem czystą podstronę, łączenie z bazą .. dopisałem kod - i nic ! mimo ze połączenie jest. Zastanawiam się czy pierwszy if jest dobrze skonstruowany ...

Kod
<?php

include("admin/functions.php");

connect();

$page = isset($_REQUEST["page"])?($_REQUEST["page"]):"1";
$id = htmlspecialchars(stripslashes(trim($_GET["id"])), ENT_QUOTES);

function title() {
if($page==$id) {
  $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");
   if ($wynik)
    $dane = mysql_fetch_assoc($wynik);
    $id    = $dane['id'];
    $title = $dane['title'];
    echo "<strong>$title</strong>";
} else echo "Błąd w zapytaniu";
}

title();
?>
Go to the top of the page
+Quote Post
muk4
post
Post #8





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


  1. <?php
  2.  
  3. include("admin/functions.php");
  4.  
  5. connect();
  6.  
  7. $page = isset($_REQUEST["page"])?($_REQUEST["page"]):"1";
  8. $id = htmlspecialchars(stripslashes(trim($_GET["id"])), ENT_QUOTES);
  9. //DEBUG START
  10. echo "Zmienna page: $page <br />";
  11. echo "Zmienna id: $id <br />";
  12. //DEBUG END
  13.  
  14. function title() {
  15. //DEBUG START
  16. echo "Zmienna page w funkcji: $page <br />";
  17. echo "Zmienna id w funkcji: $id <br />";
  18. //DEBUG END
  19.  
  20. if($page==$id) {
  21. $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");
  22. if ($wynik)
  23. $dane = mysql_fetch_assoc($wynik);
  24. $id = $dane['id'];
  25. $title = $dane['title'];
  26. echo "<strong>$title</strong>";
  27. } else echo "Błąd w zapytaniu";
  28. }
  29.  
  30. title();
  31. ?>

Wrzuć ten kod i zobacz co wyświetla.

Na przyszłość:
Jeśli piszesz jakąś funkcję to raczej nie korzystaj w niej z zmiennych globalnych tylko dodaj do niej parametry. Dodatkowo zamiast wyświetlać coś (przez echo) niech zwraca wartość Przykład:
  1. <?php
  2. //ŹLE
  3. function title(){
  4. echo $page;
  5. }
  6. //tylko
  7. function title($page){ //przekazujesz do funkcji zmienną
  8. return $page; //tutaj funkcja zwraca tę zmienną
  9. }
  10. $wynik = title($page); //funkcja coś tam robi i zwraca coś (return) do zmiennej - w tym przypadku do $wynik
  11. echo $wynik; //wyświetla wynik funkcji
  12. ?>

Polecam przyjemną lekturę: http://pl.wikibooks.org/wiki/PHP/Funkcje

Ten post edytował muk4 4.07.2010, 17:13:42
Go to the top of the page
+Quote Post
laik-php
post
Post #9





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Np. http://mysite.pl/zxcv.php?page=5

Zmienna page: 5
Zmienna id:
Zmienna page w funkcji:
Zmienna id w funkcji:

Go to the top of the page
+Quote Post
H4eX
post
Post #10





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Hm, zrób tak:

  1. function title() {
  2. global $id, $page;
  3.  
  4. //DEBUG START
  5. echo "Zmienna page w funkcji: $page <br />";
  6. echo "Zmienna id w funkcji: $id <br />";
  7. //DEBUG END
  8.  
  9. if($page==$id) {
  10. $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");
  11. if ($wynik)
  12. $dane = mysql_fetch_assoc($wynik);
  13. $id = $dane['id'];
  14. $title = $dane['title'];
  15. echo "<strong>$title</strong>";
  16. } else echo "Błąd w zapytaniu";
  17. }
  18.  


Nie masz zmiennej ID, bo w adresie nie ma id=

Ten post edytował H4eX 4.07.2010, 18:37:04
Go to the top of the page
+Quote Post
muk4
post
Post #11





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Zmiennej id nie wyświetla bo nie jest ustalona.
Zmień swoją funkcję, żeby można do niej przekierować te 2 zmienne i żeby zwracała tylko tytuł.
Poczytaj jakiś poradnik PHP na temat funkcji np. ten który ci podesłałem wcześniej.
Go to the top of the page
+Quote Post
laik-php
post
Post #12





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Zmienna page: 5
Zmienna id:
Zmienna page w funkcji: 5
Zmienna id w funkcji:
Błąd w zapytaniu

Ten post edytował laik-php 4.07.2010, 18:35:54
Go to the top of the page
+Quote Post
H4eX
post
Post #13





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


zobacz poprzedni mój post

edit/
jak zrobisz:
http://mysite.pl/zxcv.php?page=5&id=10

to będą wszystkie zmienne

Ten post edytował H4eX 4.07.2010, 18:39:24
Go to the top of the page
+Quote Post
laik-php
post
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Jak mówiłem chcę zrobić coś takiego, adres: http://stronawww.pl/index.php?page=1
i według tego id pobierze mi tytul, nazwe, slowa kluczowe, tresc, i opis.
I obrazek do pomocy:
(IMG:http://img594.imageshack.us/img594/1538/86857449.png)
Go to the top of the page
+Quote Post
H4eX
post
Post #15





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


To dlaczego używasz GET? $id musisz pobrać z bazy.
Go to the top of the page
+Quote Post
laik-php
post
Post #16





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


EDIT.

No jest:
Zmienna page: 5
Zmienna id: 10
Zmienna page w funkcji: 5
Zmienna id w funkcji: 10
Błąd w zapytaniu

Ale ja chce tylko page (IMG:style_emoticons/default/smile.gif)

no wiec jak z ta + baza?

Ten post edytował laik-php 4.07.2010, 18:42:09
Go to the top of the page
+Quote Post
H4eX
post
Post #17





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Umiesz pobierać dane z bazy?!
Go to the top of the page
+Quote Post
laik-php
post
Post #18





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


No chyba tak. Przez chociażby SELECT. Ale to chyba jest: $id = $dane['id'];
Go to the top of the page
+Quote Post
H4eX
post
Post #19





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


No, ale żeby ten warunek sprawdzić
  1. if($page==$id)

lub te polecenie wykonać
  1. $wynik = mysql_query("SELECT * FROM pages WHERE id='$id'");

musisz napisać zapytanie, tak? Bo skąd ma wziąć zmienną $id?

Ten post edytował H4eX 4.07.2010, 18:51:07
Go to the top of the page
+Quote Post
laik-php
post
Post #20





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


No raczej nie (IMG:style_emoticons/default/sad.gif) "Uczę się" PHP i jakoś mi trudno przychodzi...
Go to the top of the page
+Quote Post
muk4
post
Post #21





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


http://www.egrafik.pl/porady/phpmysql-oper...iem-bazy-mysql/
Poczytaj to.

- $page pobierasz przez $_GET
- potem robisz takie zapytanie
  1. $query = "SELECT * FROM `pages` WHERE `id`='$page'";
Go to the top of the page
+Quote Post
H4eX
post
Post #22





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Powiedz mi do czego służy ten warunek:
  1. if($page==$id)
Go to the top of the page
+Quote Post
laik-php
post
Post #23





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Cytat(H4eX @ 4.07.2010, 19:53:18 ) *
Powiedz mi do czego służy ten warunek:
  1. if($page==$id)


$page to zmienna (nie wiem jak to nazwać)
$id to numer rekordu, według którego ma być pobierana treść
Go to the top of the page
+Quote Post
H4eX
post
Post #24





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Ale po co jest ten warunek?? Daj jeszcze raz cały kod jaki masz teraz.
Go to the top of the page
+Quote Post
laik-php
post
Post #25





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Kod
<?php

include("admin/functions.php");

connect();

$page = isset($_GET["page"])?($_GET["page"]):"1";
$id = htmlspecialchars(stripslashes(trim($_GET["id"])), ENT_QUOTES);
//DEBUG START
echo "Zmienna page: $page <br />";
echo "Zmienna id: $id <br />";
//DEBUG END

function title() {
global $id;
global $page;

//DEBUG START
echo "Zmienna page w funkcji: $page <br />";
echo "Zmienna id w funkcji: $id <br />";
//DEBUG END

if($page==$id) {
  $wynik = mysql_query("SELECT * FROM pages WHERE id='$page'");
   if ($wynik)
    $dane = mysql_fetch_assoc($wynik);
    $id    = $dane['id'];
    $title = $dane['title'];
    echo "<strong>$title</strong>";
} else echo "Błąd w zapytaniu";
}


title();

?>


Ten post edytował laik-php 4.07.2010, 19:03:41
Go to the top of the page
+Quote Post
H4eX
post
Post #26





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Masz.

  1. <?php
  2.  
  3. include("admin/functions.php");
  4.  
  5. connect();
  6.  
  7. $page = isset($_GET["page"])?($_GET["page"]):"1";
  8.  
  9. function title() {
  10. global $page;
  11.  
  12. $wynik = mysql_query("SELECT * FROM pages WHERE id='$page'");
  13. if ($wynik) {
  14. $dane = mysql_fetch_assoc($wynik);
  15. $id = $dane['id'];
  16. $title = $dane['title'];
  17. echo "<strong>$title</strong>";
  18. }else{
  19. else echo "Błąd w zapytaniu";
  20. }
  21. }
  22.  
  23.  
  24. title();
  25.  
  26. ?>



Edycja:
Tutaj masz zabezpieczony i poprawny kod:
  1. <?php
  2.  
  3. include("admin/functions.php");
  4.  
  5. connect();
  6.  
  7. function title() {
  8.  
  9. $page = isset($_GET["page"])?($_GET["page"]):"1";
  10.  
  11. $wynik = mysql_query("SELECT * FROM pages WHERE id='".(int)$page."'");
  12.  
  13. if ($wynik)
  14. {
  15. $dane = mysql_fetch_assoc($wynik);
  16.  
  17. $title = htmlspecialchars($dane['title']);
  18.  
  19. echo "<strong>$title</strong>";
  20. }else{
  21. echo "Błąd w zapytaniu";
  22. }
  23. }
  24.  
  25. title();
  26.  
  27. ?>


Ten post edytował H4eX 4.07.2010, 19:15:51
Go to the top of the page
+Quote Post
laik-php
post
Post #27





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Dzięki Ci wielkie. Działa (IMG:style_emoticons/default/smile.gif) Teraz mogę dorobić resztę (IMG:style_emoticons/default/smile.gif) Można wiedzieć z jakich kursów się uczyłeś ? Może jakieś książki ?
Go to the top of the page
+Quote Post
H4eX
post
Post #28





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


PHP5 i MySQL Biblia
Go to the top of the page
+Quote Post
laik-php
post
Post #29





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Już porobiłem i strona działa, tak jak ma działać. Jeszcze raz dzięki. A z nowszych co byś polecił ?
Go to the top of the page
+Quote Post
H4eX
post
Post #30





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


Nie znam innych, ta książka jest bardzo dobra. Nie wydaję się takich co roku i język programowania też się nie zmienia przecież (IMG:style_emoticons/default/winksmiley.jpg) .

Ten post edytował H4eX 4.07.2010, 19:35:20
Go to the top of the page
+Quote Post
laik-php
post
Post #31





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.08.2009
Skąd: Kraków

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


Chyba się skusze (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 3.10.2025 - 12:55