Możesz to zrobić na kilka sposobów.
Jednym z nich jest taki, że trzymasz artykuły w bazie danych. Jedną z kolumn jest kolumna “opis” w której znajduje się powiedzny 2-3 zdania charakteryzujące dany aktykuł.
Pobierasz z bazy danych tytuł artykułu i tekst z kolumny opis i wyświetlasz je, a pod opisem umieszczasz link (więcej) który przekierowuje użytkownika do treści całego artykułu (wykonujesz nowe zapytanie do bazy danych i pobierasz tym razem tytuł artykułu, np datę dodania oraz całą treść).
– Dodane 09.10.2010 (So) 8:38 –
By treść każdego artykułu różniła się (powiedzmy tło), to np. tworzysz dwa prawie identyczne style CSS (różniące się od siebie powiedzmy kolorem tła), następnie pobierasz artykuły z bazy (lub wczytujesz z pliku tekstowego), przyporządkowujesz im kolejny ID i dla parzystych ID ustalasz styl 1, dla nieparzystych styl 2
To tylko jeden z kilu sposobów rozwiązań
Czy ta baza danych jest wymagana w mysql czy moze sie opierac na plikach txt ? Jesli, mozesz to mozesz mi pomoc cos takiego zrobic ? Jeśli masz chwilke czasu, to bardzo Cie o to prosze.
Ja osobiście preferuję bazę danych MySQL. Jest to bardzo wygodne narzędzie, gdyż udostępnia programiście mnóstwo prawie gotowych mechanizmów sortowania, łączenia i przeszukiwania bazy danych pod kątem zapytania użytkownika.
Dodatkowo serwer bazodanowy MySQL jest szybkim serwerem i dobrze napisane i zoptymalizowane zapytanie zajmuje zwykle kilka milisekund ! (zwracając kilkanaście tysięcy rekordów!!), co porównując do otwarcia pliku tekstowego (jednego!), przeszukania jego zawartości jest olbrzymim zyskiem czasu i pracy serwera.
Zacznij od tego co chciałbyś trzymać w bazie danych (np. artykuł), następnie rozpisz sobie co składa się na dany artykuł (np. tytuł, autor i etc). Każda z tych elementów składowych to jedna kolumna tablicy artykuły. Następnie rozważ co jeszcze chcesz trzymać w bazie danych (np. komentarze), co wchodzi w skład tablicy komentarze i czy jest jakaś relacja pomiędzy tablicą artykuły i komentarze (np. użytkownik może komentować dany artykuł). Rozrysuj sobie to na początek na kartce papieru i jak będziesz już wiedział co chcesz trzymać w bazie danych to wyszukaj sobie jakie mogą być kolumny bazy danych w MySQL.
kalamita jak narazie to cały czas działam na plikach txt. Ale ten jeden wyjątek moge zrobic na bazie danych mysql.
Więc w bazie danych chciałbym sobie trzymać artykuł, na który składa się: tytuł artykułu, data dodatnego artykułu, godzina oraz autor (np. dodany 08 Paź 2010 10:46 przez NorthAngel) Wychodzi na to, są 4 kolumny tablicy artykułu. Komentarze mam zapisywane do pliku txt wiec mysle, że nie musze ich trzymac w bazie danych. Wystarczy, że mi je tylko wyswietli obok linka „więcej…” Mógłbyś pomóc mi to zrobić na mojej stronce ? prosze Cie.
No chyba, że jak już cała stronke mam robioną na plikach txt to może już zostańmy jednak przy plikach txt.
Ja jednak uważam że trzymanie wszystkiego w bazie danych jest znacznie bardziej opłacalne i łatwiejsze w utrzymaniu i zarządzaniu niż w plikach txt.
Każda tablica bazy danych musi mieć unikalną kolumnę ID - po tej właśnie kolumnie identyfikował będziesz dany artykuł.
Utworzenie tablicy np.
$sql='Create table artykuly (
ID_art Int(3) NOT NULL AUTO_INCREMENT,
tytul VArchar(255) NOT NULL,
DATA TIMEDATE NOT NULL,
autor VARCHAR(255) NOT NULL,
Primary Key (ID_art));';
Oczywiście wcześniej musisz ustanowić połączenie z serwerem bazodanowym, ale to już znajdziesz w google
Probowalem sobie dodac to zapytanie do mojej bazy danych i serwer zwrocil mi taki komunikat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql='Create table artykuly ( ID_art Int(3) NOT NULL AUTO_INCREMENT, ' at line 1
Niewiem czemmu tak Dodalem to zapytanie co Ty mi podales .
Zmień na
ID_art INT(3) NOT NULL,
a w ostatniej linijce dopisz
PRIMARY KEY ( `ID_art` )
kalamita dodalem zapytanie tak jak mi podales:
$sql = 'Create table artykuly (
ID_art Int(3) NOT NULL,
tytul VArchar(255) NOT NULL,
DATA TIMEDATE NOT NULL,
autor VARCHAR(255) NOT NULL,
Primary Key (ID_art));';
I mysq zwrocil mi komunikat:
Błąd
zapytanie SQL:
$sql = 'Create table artykuly (
ID_art Int(3) NOT NULL,
tytul VArchar(255) NOT NULL,
DATA TIMEDATE NOT NULL,
autor VARCHAR(255) NOT NULL,
Primary Key (ID_art));';
MySQL zwrócił komunikat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql='Create table artykuly (
ID_art Int(3) NOT NULL,
tytul VA' at line 1
Niewiem co jest nie tak Jak to zatem zrobic hmm ?
$sql='Create table artykuly (
ID_art INT(3) NOT NULL,
tytul VARCHAR(255) NOT NULL,
DATA TIMEDATE NOT NULL,
autor VARCHAR(255) NOT NULL,
Primary Key (ID_art));';
PRIMARY KEY ( `ID_art` )
Powinno zadziałać :
mysql_query("CREATE TABLE IF NOT EXISTS artykuly (
`ID_art` INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`tytul` VARCHAR(255) NOT NULL,
`DATA` TIMEDATE NOT NULL,
`autor` varchar(255) NOT NULL
);");
if(!mysql_query)
{
//komunikat o błędzie
}
kalamita to zapytanie co mi teraz podales tez nie dziala bo wywala mi blad:
Błąd
zapytanie SQL:
mysql_query(
"CREATE TABLE IF NOT EXISTS artykuly (
`ID_art` INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`tytul` VARCHAR(255) NOT NULL,
`DATA` TIMEDATE NOT NULL,
`autor` varchar(255) NOT NULL
);"
);
MySQL zwrócił komunikat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("CREATE TABLE IF NOT EXISTS artykuly (
`ID_art` INT(3) NOT NU' at line 1
Moze lepiej zrobic to na plikach txt ?
a sprawdź czy czasem nie masz już utworzonej tabeli w bazie o nazwie artykuły. Kod jest prawidłowy
– Dodane 09.10.2010 (So) 13:26 –
pokaz mi cały kod łączenia się z bazą danych i tworzenia tabeli. Oczywiście bez nazwy użytkownika i hasła
Wlasnie sprawdzalem pare razy i nie widziałem tabeli w bazie danych o nazwie atykuły. Szczegoly podalem Ci na PW.
Mam nadyieje kalamita że jakoś nam się uda to zrobić na mojej stronce - fajnie by było.
Podaj mi kod jakim łączysz się z bazą danych i w jaki sposób operujesz połączeniem z bazą danych i wyborem właściwej bazy
A skąd ten kod wziąć ? niewiem jak operuje polaczeniami z baza danych poniewaz wogole nimi nie operuje. Bazy danych wogole nie uzywam. Mam ja od tak. Strona www dziala tylko na plikach txt. Niewiem o co Ci chodzi ? Baze danych mam pustą.
No to nic dziwnego że Ci błąd wywala.
Najpierw musisz ustanowić połączenie z serwerem bazy danych, potem wybrać bazę danych (lub ją utworzyć), a dopiero krokiem ostatnim jest tworzenie tabeli.
Jak ro zrobić znajdziesz np. tutaj :
http://www.freewebmasterhelp.com/tutorials/phpmysql/2
Strona oparta na plikach tekstowych będzie działać, dopóki nie zacznie wzrastać, zwiększać ilość danych. Czas przeszukania kilku plików tekstowych jest znacznie większy niż przeszukanie kilkudziesięciu tysięcy rekordów bazy danych - więc korzyści ze stosowania bazy danych mówią same za siebie.
– Dodane 09.10.2010 (So) 21:00 –
Dodatkowo polecam też poczytać :
ale nie rozumiem Cie, przeciez mam baze danych wiec po co mi tworzyc nowa i ja konfigurowac ? nie rozumie wogole
W mojej bazie danych nowych tabel tez nie moge utworzyc takich:
<?
$ User = "login";
$ Password = "hasło";
$ Database = "bazy danych";
mysql_connect (localhost, $ user, $ password);
@ mysql_select_db ($ database) or die ("Nie udało się wybrać bazy danych");
$ Zapytanie = "CREATE TABLE kontaktów (id int (6) NOT NULL auto_increment, pierwszy varchar (15) NOT NULL, ostatni varchar (15) NOT NULL, varchar telefonu (20) NOT NULL, telefony varchar (20) NOT NULL, fax varchar (20) NOT NULL, email varchar (30) NOT NULL, varchar internetowych (30) NOT NULL, PRIMARY KEY (id), unikatowy identyfikator (ID), KEY id_2 (id)) ";
mysql_query ($ zapytanie);
mysql_close ();
?>
Poniewaz jest blad ten:
Wygląda na to, że w twoim zapytaniu SQL jest błąd. W znalezieniu przyczyny problemu może pomóc także - jeśli się pojawi - poniższy opis błędu serwera MySQL.
ERROR: Nieznany znak przestankowy @ 1
STR: <?
SQL: <?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";<?
$ User = "caffeforum";
zapytanie SQL:
<? $ User = "caffeforum";
MySQL zwrócił komunikat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?
$ User = "caffeforum"' at line 1
Masz dostęp do serwera bazodanowego!
By aplikacja PHP mogła pobierać z bazy danych jakiekolwiek dane, to musi ona “wiedzieć” że ma połączenie z serwerem bazodanowym i musi się w nim poprawnie zalogować. Serwer bazodanowy może zawierać wiele różnych baz danych, więc by aplikacja PHP wiedziała z której ma skorzystać bazy danych musisz w kodzie podać jaką bazę wybierasz. TY potrafisz się zalogować do serwera bazodanowego bo znasz jego adres, znasz nazwę użytkownika i hasło dostępu oraz znasz nazwę bazy danych, a skąd aplikacja PHP ma to wiedzieć ?
Czyli mam utworzyc kod php w ktorym bedzie sie znajdowac zapytanie do bazy danych zawierajace moja nazwe uzytkownika, haslo dostepu oraz nazwe bazy i adres bazy tak ? Tylko ze niewiem jak
tak.
Podałem Ci link do przykładu. Wystarczy go przerobić na taki jak Tobie potrzebny