Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja Include(); + Baza Mysql
Forum PHP.pl > Forum > Przedszkole
mpps
cześć!
mam taką oto zagwostkę:
w pliku index.php znajdują się funkcje include(); odpowiedzialne za otwieranie konkretnych stron (np. z rozszerzeniem *.htm) składających się na tą główną (np. nagłówek, menu z lewej, środek strony i stopka).

Pytanie:
Jak spowodować otwieranie na środku strony (w oparciu o bazę danych) domyślnie pliku, który będzie później podmieniany na strony pokazujące się po kliknięciu na któryś z linków menu?

Upraszczając:
Wchodzimy na stronę www.jakas_domena.pl i otwiera nam się cała strona złożona ze stron includowanych. Dopiero po kliknięciu na link z menu, adres strony zmienia się np. na www.jakas_domena.pl/index.php?id=jakis_rekord (gdzie "jakis_rekord" to indeks w bazie danych) a na miejsce środkowej includowanej strony pokazuje się strona znajdująca się pod adresem przypisanym do linku, który kliknęliśmy.
To jest coś na zasadzie:

function menu($id)
{
$mplik = "menu.txt";
if (file_exists($mplik))
{
$plik = fopen($mplik, "r");
while (!feof($plik))
{
$linia = fgets ($plik, 40);
$rozbij = explode (";", $linia);
printf("<A HREF=\"index.php?id=%s\">%s</A><BR>", $rozbij[0], $rozbij[1]);
}
fclose ($plik);
}
}

function srodek_strony($id)
{
switch ($id)
{
case 1:
$plik="1.htm";
break;
case 2:
case "add":
$plik="2.htm";
break;
case 3:
$plik="3.htm";
break;
case 4:
$plik="4.htm";
break;
default: //czegoś takiego jak to mi brakuje winksmiley.jpg
$plik="srodek.htm";

}
if (file_exists($plik))
{
include($plik);
}
else
{
print("Przykro mi - strona, której szukasz, jest w tej chwili niedostępna :-(");
}
}

srodek_strony($_GET['id']);

tylko, że oparte na bazie danych... winksmiley.jpg
lub coś na zasadzie HTML-owskiego <IFRAME>

pozdro i thnx z góry za pomoc
marcin
scanner
NO prezeciewż konstrukcja Switch ma klauzule default.

Pozatym piszesz nie w tym dziale. Przenoszę Skrypty obsługi baz danych => php Początkujacy.
Zdublowany watek został usuniety.
mpps
problem już został rozwiązany.
tak, switch(); oczywiście ma klauzulę default();, ale szukałem CZEGOŚ NA ZASADZIE switch(); do pracy na bazach danych...
przy okazji: czy jest możliwość zaznaczania gdzieś, że dany temat jest już nieważny (czyt. rozwiązany)?

pozrawiam
marcin

ps.
jestem (prawie) nowym użytkownikiem forum, więc pozwól, że czasami (czyt. bardzo rzadko winksmiley.jpg ) będę popełniał błędy w umiejscawianiu tematów
kszychu
Cytat(mpps @ 2004-09-01 15:29:00)
ps.
jestem (prawie) nowym użytkownikiem forum, więc pozwól, że czasami (czyt. bardzo rzadko winksmiley.jpg ) będę popełniał błędy w umiejscawianiu tematów

To, że jesteś nowym użytkownikiem nakłada na Ciebie obowiązek zapoznania się z zasadami panującymi na forum, które zostały zawarte w regulaminie.
Jest tam też o tym czym jest bbcode i jak należy tego używać by posty były czytelne dla Ciebie i innych.
mpps
tak to już zazwyczaj jest, że to co najważniejsze, często się pomija lub leci po łebkach... lub zapomina guitar.gif

dzięki za przypomnienie & stosować się zobowiązuję winksmiley.jpg

pzdr
m
scanner
Skoro juz o pomijaniu mowa.
Powiedz dokładnie czego potrzebujesz, bo skoro w kodzie piszesz że potrzeba Ci default a default w switchu jest, to ja sie pytam o co chodzi?
mpps
Cytat
w pliku index.php znajdują się funkcje include(); odpowiedzialne za otwieranie konkretnych stron (np. z rozszerzeniem *.htm) składających się na tą główną (np. nagłówek, menu z lewej, środek strony i stopka).

Pytanie:
Jak spowodować otwieranie na środku strony (w oparciu o bazę danych) domyślnie pliku, który będzie później podmieniany na strony pokazujące się po kliknięciu na któryś z linków menu?

Upraszczając:
Wchodzimy na stronę www.jakas_domena.pl i otwiera nam się cała strona złożona ze stron includowanych. Dopiero po kliknięciu na link z menu, adres strony zmienia się np. na www.jakas_domena.pl/index.php?id=jakis_rekord (gdzie "jakis_rekord" to indeks w bazie danych) a na miejsce środkowej includowanej strony pokazuje się strona znajdująca się pod adresem przypisanym do linku, który kliknęliśmy.


poszukiwałem skryptu, który byłby podobny do tego, który wcześniej wypisałem ale bardziej odpowiedni w pracy na bazach.
w końcu sam pokombinowałem w czym dopomógł mister tumczasty (poniżej wynik już po dodatkowej modyfikacji) za co punkty na plus waszmościowi się należą winksmiley.jpg :

  1. <?php
  2.  
  3. // while records exists to fetch from table, repeat this action
  4.  
  5. while ($linel = mysql_fetch_row($row_count)) {
  6.  
  7. // construct a hyperlink from the 2 data elements of record in table
  8. echo('<A HREF=\"index.php?id='.$line[0].'\">'.$line[1].'</A><BR>');
  9. if($line[0]==$_GET['id']) $podstr=$line[2];
  10. }
  11. //Wywołanie funkcji odpowiedzialnej za wyświetlenie zawartości pliku przypisanego 
  12. o odpowiedniego linku oraz pliku domyślnego
  13. if(isset($_GET['id'])) {
  14. if(!isset($podstr)){
  15. print(&#092;"Przykro mi - strona, której szukasz,<BR>jest w tej chwili niedostępna.\");
  16. }
  17. else{
  18. include($podstr);
  19. }
  20. }
  21. else
  22. include(&#092;"head.htm\"); // strona domyślna -> tego potrzebowałem!
  23.  
  24.  
  25. ?>


trochę nagmatwałem biggrin.gif

pozdrawiam
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.