Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: inludowanie w tabeli
Forum PHP.pl > Forum > PHP
AddoN
Witam,

nie wiem czy temat do działu php czy mysql, ale raczej tutaj tacy spece siedzą, że to żadna różnica dla Was wink.gif

Optymalizuje właśnie bazę danych w której są wstawione stałe treści przy każdym użytkowniku.
Chciałem je poprzenosić do osobnych plików, a w bazie zostawić same include.

Tyle że
  1. <?php include('pliki/1.php'); ?>


nie działa z poziomu bazy danych. Kombinowałem z nawiasami, cudzysłowami, wstawiałem cały link do pliku i dalej nic. W ogóe można includować z bazy?
matiit
Cytat
a w bazie zostawić same include.

Nie za bardzo ma to sens..

W ogóle np. ja nie do końca rozumiem o co Ci chodzi smile.gif
AddoN
a co tutaj rozumieć.
Zamiast 20kb tego samego tekstu każdemu użytkownikowi chce wstawić odnośnik do jednego pliku.
matiit
  1. <?php include('pliki/1.php'); ?>

Jeśli w bazie trzymasz taki string - to nie jest dobre smile.gif

Lepiej trzymaj np. samą liczbę 1 - i za każdym razem dawaj potem w php
  1. <?php include('pliki/'.$row['textId'].'.php'); ?>


Podmieniając odpowiednio $row['textId'] zmienną wyniku z bazy danych i klucza-kolumny.
rocktech.pl
Witam.

Nie include z poziomu bazy danych nie zadziała. Musiałbyś potraktować ten ciąg znaków funkcją eval.
.
W twoim przypadku mogę Ci zasugerować trzymanie w bazie ID bloku statycznego.
Potem aplikacji zostawiasz całą robotę z przetworzeniem tego ID, oraz wykonaniem interesującego Ciebie bloku kodu.
nospor
Baza jest od tego by w niej trzymać dane a nie po plikach....

Ogólnie chyba przekombinowałeś. Może napisz dokładnie co ty za tresci tam trzymasz to ci powiemy jak to zrobić
AddoN
Cytat(matiit @ 16.04.2013, 11:22:07 ) *
  1. <?php include('pliki/1.php'); ?>

Jeśli w bazie trzymasz taki string - to nie jest dobre smile.gif

Lepiej trzymaj np. samą liczbę 1 - i za każdym razem dawaj potem w php
  1. <?php include('pliki/'.$row['textId'].'.php'); ?>


Podmieniając odpowiednio $row['textId'] zmienną wyniku z bazy danych i klucza-kolumny.


Nie, nie trzymam wink.gif To tylko przykład do wstawienia tutaj. Normalnie link wygląda inaczej, plik ma pełną nazwę.

Tyle że jak wstawie <?php include... do bazy i chcę wyświetlic to ta zawartość nie jest wczytywana.
!*!
Ale po co chcesz wstawiać include do bazy? Napisz konkretnie o co Ci chodzi, a nie robisz zamieszanie.
matiit
Cytat
Tyle że jak wstawie <?php include... do bazy i chcę wyświetlic to ta zawartość nie jest wczytywana.


Kolega wyżej napisał, że aby takie coś działało, trzeba użyć funkcji eval().

Zrób jak pisał @nospor, to będziemy bardziej pomocni.
AddoN
Czyli tak,
w bazie jest kilkuset użytkowników, którzy mają w jednym polu wstawioną taką samą treść zapisaną w bazie danych
chciałem przenieść tą treść do osobnego pliku żeby móc nią łatwiej zarządzać,
a w bazie wrzucić same odniesienia do tego pliku.

Jeżeli da się takie coś zrobić z poziomu bazy danych to jeszcze lepiej, bo odejdzie mi zabezpieczanie pliku przed bezpośrednim wywołaniem.
matiit
Jeśli wszędzie jest ta sama treść...to po co w ogóle odnośnik do tej treści.

Może to być jakaś stała w jakimkolwiek pliku...
!*!
To skoro treść jest taka sama dla wszystkich, to po co w ogóle trzymasz ją w bazie? IMO mylisz pojęcia i zastosowanie. Masz skrypt php, w nim pobierasz dane z bazy i na nich operujesz. Pobierasz np. nazwę pliku z bazy i na jego podstawie wczytujesz w PHP jak już napisano wyżej, tylko jeśli dla każdego jest to samo, to baza jest tu zbędna.
AddoN
Rozumiem Was wszystkich dzięki za rady, ale muszę działać na tym co mam wink.gif
A mam bazę z której chcę wyrzucić 1/2 zawartości do kilku osobnych plików i wstawić tam same odwołania.

Szukałem o tej funkcji eval, ale nie znalazłem żadnego przykładu jak to zaadresować.
matiit
eval("kod php");
Greg0
Cytat(AddoN @ 16.04.2013, 12:08:21 ) *
Rozumiem Was wszystkich dzięki za rady, ale muszę działać na tym co mam wink.gif
A mam bazę z której chcę wyrzucić 1/2 zawartości do kilku osobnych plików i wstawić tam same odwołania.

Szukałem o tej funkcji eval, ale nie znalazłem żadnego przykładu jak to zaadresować.


Nie widzę sensu w wyrzucaniu zawartości i zastępowaniem jej odesłaniem do niej. Nie wiem jaka w tym logika ale nie tędy droga. To już lepiej zostawić jak jest niż katować serwer eval'em (vide eval w pętli), lub porobić relacje w samej bazie. Najlepsze rozwiązanie jak już ktoś napisał, zdeklarować stałą i po sprawie.
AddoN
czyli co kilka rekordów w bazie zrobić, gdzie będą trzymane komunikaty a w rekordach użytkowników stawiać tam tylko odwołania do nich?

Tylko że taka funkcja z bazy danych nie działa

  1. <?
  2. $go = mysql_query("SELECT xxx FROM yyy WHERE Id = zzz");
  3. $row = mysql_fetch_array($go);
  4. echo $row['xxx'];
  5. ?>
!*!
Nie rozumiem pytania. Zaprojektuj bazę, od nowa. Poczytaj jak to powinno wyglądać i korzystaj z tego odpowiednio przy pomocy PHP.

Pomocne linki:
http://pl.wikibooks.org/wiki/PHP
http://pl.wikibooks.org/wiki/PHP#Bazy_danych
CuteOne
tabela KOMUNIKATY
id | tresc

tabela UZYTKOWNICY_KOMUNIKATY
id_komunikatu | id_uzytkownika

tabela UZYTKOWNICY
id | login

  1. SELECT k.*
  2. FROM uzytkownicy u
  3. LEFT JOIN uzytkownicy_komunikaty uk ON uk.id_uzytkownika = u.id
  4. LEFT JOIN komunikaty k ON k.id = uk.id_komunikatu
  5. WHERE
  6. u.login = 'xxx'


Pobierasz n+1 komunikatów dla konkretnego użytkownika (możesz nawet pominąć tabele uzytkonicy mając id_uzytkownika)
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.