Tytuł będący odnośnikiem do tekstu w bazie danych

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
techcode
Początkujący
Początkujący
Posty: 10
Dołączył(a): piątek, 26 kwietnia 2013, 11:23

Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez techcode »

Witam, mam listę tytułów danych postów pobieranych z bazy. Problem mam taki, gdy najadę myszką lub kliknę w dany tytuł, to chciałbym aby nowa strona była z tekstem i tytułem tego posta.
Zrobiłem tak, że tekst mam w pasku adresu url i co robię źle? Poniżej daję kod. Pomijam połączenie z baza danych.

Code: Zaznacz cały

$query = "SELECT id_art, Tytul, Artykul, Autor FROM articles";

if ($result = $mysqli->query($query)) {

    
    while ($row = $result->fetch_assoc()) {
	
     $id_art = $row['id_art'];
     $Tytul = $row['Tytul'];
     $Artykul = $row['Artykul'];	 
     $Autor = $row['Autor'];

	 
	 print "<br><a href=\"article.php?id_art=$Artykul\">$Tytul</a>";
	 print "<br> $Autor";
     
	 //echo "<div id=\"numbername\">$id_kom, $Autor </div>";
	 //echo "<div id=\"temat\">$Tytul</div> ";
	 //echo "<div id=\"koment\">$Komentarz</div> ";
    }
}


$mysqli->close();


Zastanawiam się czy te zmienne nie powinny mieć $_GET['nazwa zmiennej']
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez Morfidon »

Co to znaczy że strona jest 'tekstem i tytułem tego posta'. Jeśli wprowadzasz do języka polskiego własne definicje to je musisz wyjaśnić. Wyrażaj się jasno.

Podaj przykład.
techcode
Początkujący
Początkujący
Posty: 10
Dołączył(a): piątek, 26 kwietnia 2013, 11:23

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez techcode »

Podam przykład:
Gdy pobieram z bazy tytuły to są w formie tekstu jak to poniżej:

Tytuł Postu
tytuł postu
.
.
.
tytuł postu

Gdy kliknę na dany tytuł, to przechodzę do postu lub artykułu i chciałbym aby tekst nie był w pasku url a na stronie.

Tutaj wyświetla mi się tak, tekst widać w pasku url.
Obrazek
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez Morfidon »

No, ale przecież zaprogramowałeś go w pasku w URL na stronie, więc jak ma tam nie być?

Skoro tutaj:

Code: Zaznacz cały

$Artykul = $row['Artykul'];
masz przechowywaną treść to znaczy, że nie powinieneś jej przesyłać

Code: Zaznacz cały

   print "<br><a href=\"article.php?id_art=$Artykul\">$Tytul</a>";
jako URL? przecież to się wyświetli tam, gdzie powiesz, aby się wyświetliło.

Jeśli chodzi o wyświetlanie zawartości na stronie, gdy dane są w bazie to robię coś podobnego w 34 lekcji video kursu pozycjonowania:
http://videokurs.pl/kurs-pozycjonowania ... h.php#AL34
techcode
Początkujący
Początkujący
Posty: 10
Dołączył(a): piątek, 26 kwietnia 2013, 11:23

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez techcode »

Może dziwnie zatytułowałem temat, że link jest tekstem, ale musiałem wkleić obrazek aby pokazać o co mi chodzi. a jak inaczej można pobrać dane?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez Morfidon »

Przecież pobrałeś dane. Wyświetl je po prostu tam, gdzie mają być.

Sprawdź czy istnieje $_GET['id_art'] i jeśli istnieje to wyświetlić artykuł (oczywiście wcześniej go pobierz)

Natomiast wcześniej w pętli, którą już masz w linku wypisz id_art=$id_art zamiast id_art=$Artykuł.

Jeśli masz z tym problemy to sugeruję poćwiczyć coś łatwiejszego. Przede wszystkim wrócić się do kursu i zobaczyć jak jest napisane np. logowanie się i przetrenować skrypt samemu bez podglądania jak to jest zrobione.
techcode
Początkujący
Początkujący
Posty: 10
Dołączył(a): piątek, 26 kwietnia 2013, 11:23

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez techcode »

Z logowaniem za pomocą $_GET[]; nie było problemu bo sesji użyłem. Natomiast, nadal mi nie działa mimo, że zmieniłem zapytanie na:

Code: Zaznacz cały

$query = "SELECT id_art, Tytul, Artykul, Autor FROM articles
          where id_art = '".$_GET['id_art']."' ";
a metoda GET w pętli:

Code: Zaznacz cały

if ($result = $mysqli->query($query)) {  
    while ($row = $result->fetch_assoc()) {
	
   $id_art = $_GET['id_art'];
     $Tytul = $row['Tytul'];
     $Artykul = $row['Artykul'];	 
     $Autor = $row['Autor'];
     
	 echo $_GET['id_art'];

    }
}
Działa, ale jak tak samo napisze w GET tytuł i artykuł, to jest błąd wskazujący na zapytanie select i na linię gdzie wcześniej było :
$Tytul = $_GET['Tytul'];
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez Morfidon »

Podaj co to za błąd - wklej go.
techcode
Początkujący
Początkujący
Posty: 10
Dołączył(a): piątek, 26 kwietnia 2013, 11:23

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez techcode »

No tak, co pojawi mi się to błąd, ale to nie jest błąd a uwaga. Ponieważ jest to komunikat Noice = Undified Index
A noice dotyczył zapytania po where gdzie zamiast id_art = '".$_GET['id_art'].'" było Tytul = ".$_GET['Tytul'].'"

z wywołaniem echo $_GET['Tytul'];

wcześniej w pętli co mam powyżej miałem napisane $Tytuł = $_GET['Tytul'];

Wyczytałem, że komunikat mi mówi, że nie ma w tablicy takiej wartości. Czyli mam zrobić na sesjach lub używając:
if (isset($GET['id_art']))
{
tu echo...
}
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Tytuł będący odnośnikiem do tekstu w bazie danych

Post przez Morfidon »

Skoro notice mówi, że index jest undefined, to się upewnij, czy rzeczywiście zawsze jest tam jakaś wartość. Jak to sprawdzić? np. zrób tzw. debugging, czyli linie wcześniej wypisz echo $tesowana_zmienna. Jeśli jej nie ma w jakimś tak przypadku to znaczy, że zaplanowałeś coś nie tak swoją aplikację.
Post Reply