ForumCała strona

Nawigacja

Aktualnie online

Gości online: 13

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Nawigacja

Pierwsza wtyczka do PHP-Fusion v7 cz.4: Baza danych

Napisane przez Chemikpil dnia 13 marca 2011 15:52 · 0 komentarzy · 12454 czytań · Drukuj · Facebook · Wykop

Streszczenie:

Podstaw? ka?dej aplikacja s? dane, na których wykonywane s? pewne operacje. Dane te musz? by? gdzie? sk?adowane, i przewa?nie jest to baza danych. Nie inaczej sprawa wygl?da, je?li mówimy o wtyczkach w PHP-Fusion. Chc? stworzy? powa?ny skrypt, musimy uwzgl?dni? wykorzystanie bazy danych i tym si? dzi? zajmiemy.

Uwaga! Aby dobrze zrozumie? ten artyku?, wymagana jest cho?by podstawowa wiedz na temat SQL.


Plik infusion.php


Na pocz?tek dokonamy edycji pliku instalacyjnego, w którym zadeklarujemy struktur? tabeli wykorzystywanej przez nasz skrypt. Przypominam, ?e zajmujemy si? skryptem losuj?cym cytaty. Zanim to jednak zrobimy, musimy poinformowa? instalator ile tabel b?dziemy tworzy? i usuwa?.


$inf_newtables = 1; // Ilo?? tworzonych tabel
$inf_insertdbrows = 0; // Ilo?? wstawianych wierszy
$inf_altertables = 0; // Ilo?? zmienianych tabel
$inf_deldbrows = 1; // Ilo?? usuwanych tabel

W tabeli b?dziemy przechowywa? tre?? cytatu i jego autora.



$inf_newtable[1] = DB_CYTATY." (
id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
cytat VARCHAR(255) NOT NULL,
autor VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
) TYPE=MyISAM;";

Przyjrzyjmy si? bli?ej sk?adni. $inf_newtable to tablica w której trzymamy kolejne deklaracje tabel, DB_CYTATY to sta?a zast?puj?ca nam nazw? tabeli o której powiem za chwile, a dalej to ju? tylko SQL.

Nast?pnie dodajemy linijk? informuj?c? deinstalator, które tabele ma usun??.


$inf_droptable[1] = DB_CYTATY;

Poza wymienionymi sposobami interakcji z baz? danych s? jeszcze dwa inne: wstawianie nowych kolumn...


$inf_altertable[1] = DB_CYTATY." ADD year DATE";

... oraz wstawianie nowych wierszy:


$inf_insertdbrow[1] = DB_CYTATY."(cytat, autor) VALUES('Cz?owiek jest tym, o czym przez ca?y dzie? my?li', 'Ralph Waldo Emerson')";

Oczywi?cie o ka?dym takim zabiegu nale?y informowa? instalator, przypisuj?c wi?ksz? liczb? do zmiennych z pocz?tku artyku?u.


Plik infusion_db.php


W pliku infusion_db.php definiujemy sta?e, które wykorzystywane by?y w pliku infusion.php oraz b?d? u?ywane w pozosta?ych plikach naszej aplikacji zamiast ca?ych nazw tabel. Poni?ej poprawna zawarto?? pliku infusion_db.php:


if (!defined("IN_FUSION")) { die("Access Denied"); }

if (!defined("DB_CYTATY")) {
define("DB_CYTATY", DB_PREFIX."cytaty");
}

Po utworzeniu tego pliku musimy go doda? jeszcze do naszego instalatora:


include INFUSIONS."cite_panel/infusion_db.php";

... do tego pami?tajmy by wcze?niej odinstalowa? wcze?niejsz? wersje wtyczki i mo?emy zainstalowa? now?, wykorzystuj?c? baz? danych.Warto jeszcze sprawdzi? prze PHPMyAdmin czy tabele faktycznie zosta?y utworzone, tak dla wi?kszej pewno?ci.

Poni?ej prezentuje poprawny plik infusion.php:


<?php
if (!defined("IN_FUSION")) { die("Access Denied"); }
include INFUSIONS."cite_panel/infusion_db.php";

if (file_exists(INFUSIONS."cite_panel/locale/".$settings['locale'].".php")) {
include INFUSIONS."cite_panel/locale/".$settings['locale'].".php";
}

$inf_title = "Cite panel"; // Nazwa infusiona
$inf_description = $locale['HL102']; // Opis infusiona
$inf_version = "1.0"; // Wersja infusiona
$inf_developer = "Autor"; // Autor infusiona
$inf_email = "adres@email.com"; // Email autora
$inf_weburl = "www.twojastrona.pl"; // Strona domowa autora

$inf_folder = "cite_panel"; // Folder w którym znajduj? si? pliki infusiona

$inf_newtables = 1; // Ilo?? tworzonych tabel
$inf_insertdbrows = 0; // Ilo?? wstawianych wierszy
$inf_altertables = 0; // Ilo?? zmienianych tabel
$inf_deldbrows = 1; // Ilo?? usuwanych tabel

$inf_newtable[1] = DB_CYTATY." (
id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
cytat VARCHAR(255) NOT NULL,
autor VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
) TYPE=MyISAM;";

$inf_droptable[1] = DB_CYTATY;

$inf_sitelink[1] = array(
"title" => $locale['HL103'], // Tytu? linku
"url" => "cite_index.php", // Adres pliku
"visibility" => "0" //Widoczno?? 0 - wszyscy, 1 - zalogowani, 2 - admin
);
?>

Zapytania


By wykona? jakie? zapytanie do bazy danych, nale?y skorzysta? z funkcji dbquery. Jako argument przyjmuje ona zapytanie w j?zyku SQL, np takie:


dbquery("SELECT * FROM ".DB_CYTATY." ");

Takie zapytanie warto wywo?ywa? jako warunek if, gdy? w przypadku niepowodzenia funkcja zwraca false, dzi?ki czemu b?dziemy mogli obs?u?y? po swojemu tego typu zaj?cia.
Inn? wa?na funkcj? jest dbarray, która zwraca wyniki w postaci tablicy asocjacyjnej. Przyk?ad: mamy tabel? o takiej strukturze:


id | imie | nazwisko

Chc?c teraz pobra? i wy?wietli? wszystkie imiona, najpierw musimy wykona? zapytanie SELECT, przy pomocy dbquery, a potem wyniki zwróci? w postaci tablicy asocjacyjnej przy pomocy dbarray:


$resutl = dbquery("SELECT * FROM ".DB_OSOBY." ");
while($data = dbarray($result)) {
echo $data['imie'];
}

Oczywi?cie PHP-Fusion posiada wi?cej wbudowanych funkcji obs?uguj?cych baz?, ale po wi?cej informacji odsy?am do dokumentacji:



Przyk?ad


Tu powinien znale?? si? przyk?ad bazuj?cy na naszej aplikacji wy?wietlaj?cej losowy cytat. Zostawiam to jednak jako ?wiczenie w my?l pytania: "jak chcesz zdoby? wiedz? inaczej ni? przez praktyk??". W nast?pnej cz??ci zg??bimy tajniki administracji oraz bezpiecze?stwa (najprawdopodobniej po??cz? dwie ostatnie cz??ci).

Komentarze

Brak komentarzy. Może czas dodać swój?

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.

Oceny

Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się lub zarejestruj, żeby móc zagłosować.

Świetne! Świetne! 100% [2 głosy]
Bardzo dobre Bardzo dobre 0% [0 głosów]
Dobre Dobre 0% [0 głosów]
Średnie Średnie 0% [0 głosów]
Słabe Słabe 0% [0 głosów]
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl