Własny portal w php #3

Grudzień 27, 2008

I jest juz 3 czesc poradnika ; ) Teraz bedziemy tworzyc plik index.php ktory bedzie czytal newsy, a w pozniej pelnil rowniez inne funkcje. WIec:

1. Tworzymy plik index.php.

2. Wpisujemy ten kod:

Newsy

<?
require('db_connect.php'); // laczymy się z baza
if(intval($_GET['newsid'])) //jeśli jest polaczenie odczytujemy
{
echo '

Wszystkie newsy

';

$sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM newsy WHERE id='".intval($_GET['newsid'])."'";
$query=mysql_query($sql);
if($result=mysql_fetch_assoc($query))
{
echo '

'.nl2br($result['tresc']).'

'; //odczytujemy tresc z bazy
// autor
echo '

'.$result['autor'].' ('.$result['utworzono'].')

'; // odczytujemy autora i date
}
}
else
{
$sql="SELECT newsy.id, DATE_FORMAT(newsy.dodano, '%e-%m-%Y %H:%i') AS utworzono,
newsy.autor, newsy.tresc, COUNT(lp) AS il_kom
FROM newsy
LEFT JOIN komentarze ON (komentarze.id=newsy.id)
GROUP BY newsy.id ORDER BY newsy.dodano DESC";
$query=mysql_query($sql);
while($result=mysql_fetch_assoc($query))
{
// zawartosc newsa
echo '

'.nl2br($result['tresc']).'

';
// autor
echo '

'.$result['autor'].' ('.$result['utworzono'].')

';
// ilosc komentarzy i link do nich
echo '

Komentarze: ('.$result['il_kom'].')

';
// oddzielam od pozostalych
echo '


';
}
}

Postaralem sie opisac co do czego sluzy (w kodzie) ale powiem w skrocie co ten kod robi… Wiec czyta on z bazy tresc newsa, autora i date uworzenia. To wszystko ; )

Mozemy sprawdzic czy ten kod rzeczywiscie czyta z bazy. W jakis sposob?

1. Wchodzimy w phpMyAdmin.

2. Wchodzimy w tabele newsy i dodajemy newsa.

3. Nastepnie wchodzimy na strone i sprawdzamy czy wyświetla ona newsa.

Uwaga: Jeśli strona nie wyświetla newsa, piszemy do mnie ; )


Własny portal w php #2

Grudzień 27, 2008

No i wreszcie jest 2 część kursu o robieniu małego portalu w php. Mamy już odpowiednio stworzoną bazę danych. Przejdźmy do łączenia się z bazą danych.

Połączenie z bazą danych to jeden malutki kodzik, ale bez niego niezadziała najprostrzy skrypt który wymaga takiego połączenia ; ). Jak zrobić taki kod?

1. Tworzymy plik db_connect.php.

2. Wpisujemy ten kod:


<?
$db=mysql_connect('localhost', 'root', '');
mysql_select_db('portal', $db);
?>

3. Podmieniamy dane własnymi.

W tym pliku muszą być  zawarte informacje dzięki którym będzie można dostać się do bazy danych. Tam gdzie ja wpisałem localhost, należy wpisać nazwe hosta (serwera) bazy, w miejsce root powinna znalezc sie nazwa uzytkownika serwera bazy a tam gdzie zostawilem puste pole haslo. Nastepnie w 3 linijce kodu, mamy połączenie i zamiast portal należy wpisać nazwe bazy danych ktora stworzylismy na poczatku kursu.

Teraz trzeba odczutać to co jest zawarte w tej bazie. Do tego służy krótki kod:


<?
require('db_connect.php');
?>

Jednak ten kod nie załatwi wszystkiego. Trzeba będzie odczytać tabelki itp. A to w części 3 ; )


Własny portal w php #1

Grudzień 27, 2008

Newsy które będą wpisywane przez administratorów będą wysyłane do bazy danych, następne oczytywane z niej aby ukazać je wszystkim. Co ma być jeszcze? Komentarze do newsów… Będą one wysyłane do bazy poprzez wypełnienie krótkiego formularza przez odwiedzającego stronę, następnie oczytywane po news’ie. 

Jak zrobić te wszystkie wyżej wymienione rzeczy dowiecie się w następnych częściach artykułu. Teraz opisze krok po kroku, jak utworzyć bazę danych, tabele i pola.

1. Wchodzimy do phpMyAdmin.

2. W polu Utwórz nową bazę danych wpisujemy jej nazwę i klikamy Utwórz.

3. Otwieramy zakładkę SQL.

4. Wpisujemy ten kod:

CREATE TABLE `komentarze` (
`lp` smallint(6) NOT NULL auto_increment,
`id` smallint(6) NOT NULL default '0',
`dodano` datetime NOT NULL default '0000-00-00 00:00:00',
`autor` varchar(255) NOT NULL default '',
`tresc` text NOT NULL,
PRIMARY KEY (`lp`)
) ENGINE = MYISAM

CREATE TABLE `newsy` (
`id` smallint(6) NOT NULL auto_increment,
`dodano` datetime NOT NULL default '0000-00-00 00:00:00',
`autor` varchar(255) NOT NULL default '',
`tresc` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = MYISAM

CREATE TABLE `users` (
`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`login` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`level` TINYINT NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = MYISAM

5. Klikamy Wykonaj.

Teraz wyjaśnię. Utworzyliśmy tabelę komentarze, newsy i users. W tych tabelach beda znajdowac sie newsy, komentarze i użytkownicy. Może troche nietypowo wyglądapole level w tabeli users, więc służy ono do levelu użytkownika ; p. A jaśniej? Zwykły użytkownik będzie miał lvl1, a sobie będziemy mogli bać lvl2 dzięki któremu będziemy mieli dostęp do panelu administracyjnego. Ale to póóźniej… W dalszej czesci poradnika dowiecie się jak zrobić odczytywanie newsów ; )

Pozdrawiam.


Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.