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 - 19)
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

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: 23.12.2025 - 19:22