Strona 1 z 2

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

Napisane: piątek, 26 kwietnia 2013, 11:32
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']

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

Napisane: piątek, 26 kwietnia 2013, 11:36
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.

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

Napisane: piątek, 26 kwietnia 2013, 11:56
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

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

Napisane: piątek, 26 kwietnia 2013, 12:10
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

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

Napisane: piątek, 26 kwietnia 2013, 16:06
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?

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

Napisane: piątek, 26 kwietnia 2013, 16:15
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.

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

Napisane: piątek, 26 kwietnia 2013, 22:00
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'];

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

Napisane: piątek, 26 kwietnia 2013, 23:50
przez Morfidon
Podaj co to za błąd - wklej go.

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

Napisane: sobota, 27 kwietnia 2013, 09:16
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...
}

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

Napisane: sobota, 27 kwietnia 2013, 22:35
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ę.