Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL/php] Nazwa artykułu w tytule strony...
Forum PHP.pl > Forum > Przedszkole
Vitoss
Chciałbym w tytule strony wyświetlać nazwę poszczególnego artykułu. Niestety, nie wiem do końca jak to zrobić worriedsmiley.gif

Wpisy artykułów są przechowywane dajmy na to w nazwa w artykul

Tworzę zatem kod:
  1. <?php
  2. $sql = mysql_query("SELECT nazwa from artykul");
  3. $tytul = mysql_fetch_array($sql);
  4. ?>

i w polu title, gdzie powinien sie wyswietlac tytul daje:
  1. <?php
  2. echo $tytul;
  3. ?>

ale wyswietla sie wtedy w tytule napis "Array" tam, gdzie powinien byc tytuł każdego artykulu... Jak to zrobić, żeby wszystko działało, a przeglądając pozostałe strony - poza artykułami, te pole było puste? Porszę o pomoc. Pozdrawiam.
nospor
Przyjrzyj sie, co zwraca Twoja funkcja:
http://pl.php.net/manual/pl/function.mysql-fetch-array.php
a potem zadawaj pytania na forum. Polecam moj podpis smile.gif
A potem zobacz w manualu jak sie dobrac do danych
Gość
mysql_fetch_array zwraca tablice asocjacyjna - zrob cos z tym.
Vitoss
Bazowałem na rozwiązaniu z tego skryptu - kiedy wyświetlał tytuł w treści - jednak w innym w pliku... Nie jestem orłem w php, zatem nie wychodzi mi to najlepiej sad.gif

Przejrzałem manual php - chodzi może o funkcję mysql_field_name - można dzięki niej uzyskać taki efekt?


Przepraszam, wiem, że wydaje się to uciążliwe - na pewno z Waszego punktu widzenia takie błędy są niedopuszczalne i banalne, jednak z php zbyt wiele nie miałem do czynienia - dlatego widać kwiatki...
Gość
  1. <?php
  2. $sql = mysql_query("SELECT nazwa from artykul");
  3. ?>

To zapytanie zwroci nazwy wszystkich artykulow, bo nie ma zadnego warunku. Wiec przede wszystkim jak ma byc tylko jedna nazwa to zmien pytanie, czyli dodaj jakis warunek WHERE nazwa= ...
Pozniej pobierz dane za pomoca mysql_fetch_array.
Vitoss
Dzięki ślicznie smile.gif

Rozwiązałem to w ten sposób:

  1. <?php
  2. $id = htmlspecialchars(intval(@$_GET['id']));
  3.  
  4. $1="SELECT nazwa FROM kategoria WHERE id='$id'";
  5. $2=mysql_query($1);
  6. $kat=$cat["nazwa"]." - ";
  7.  
  8.  $pyt = "SELECT nazwa FROM artykul WHERE id='$id'";
  9.  $wnk = mysql_query($pyt);
  10.  $tenr = @mysql_fetch_array($wnk);
  11.  $artykl=$tenr["name"]." - ";
  12. ?>

Został tylko jeden malutki problem - może moglibyście coś doradzić... winksmiley.jpg Otóż chciałbym, żeby tytuły wyświetlały się w takiej formie: Tytuł materiału/Tytuł kategorii - Strona tytuł, bleble. Dlatego dałem te myślniki w zmiennych - jednak jak zmienna jest pusta (np. na stronie głównej), to wyświetlają się same te myślniki - i wszystko wygląda dosyć kiepsko (np. - - Strona, bleble). Jak można to poprawić?
Gość
Mozesz dac jakies isset, czyli jak cos jest wyczytane z bazy do niech daje taki tytul, jak sam poczatek to inny.
Vitoss
Chciałem się jeszcze zapytać, czy takie rozwiązanie nie obciąża strasznie serwera ani bazy - np. jeśli w bazie jest duża liczba wpisów (ponad kilka tysięcy)? Nie będzie przez to problemów z prawidłowym działaniem strony i długością jej wczytywania?


EDIT: Po utworzeniu tej funkcji, zauważyłem, że strona chodzi wolniej, aż niedawno doszło do tego, że Czas ładowania strony: 54.337 - czy to jest wina tego skryptu - skoro w bazie jest kilka tysięcy wpisów?
em1X
A od kiedy to mozna stosowac zmienne $1 czy $2 ? biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif


Ps.. pieknie to zrobiles.. jedna instrukcja w 13 linijkach..
Ps2: po co traktujesz funkcją htmlspecialchars liczbę ? lol przeciez to bez sensu

  1. <?php
  2. $id = intval(@$_GET['id']);
  3.  
  4. $sql = mysql_query("select nazwa from kategoria where id = '$id'");
  5. $tytuł = mysql_result($sql, 0) . "-";
  6. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.