
Pradėsim nuo duomenų bazės.
//1. Config.php
Susikursime config.php failą, tam kad nereiktų kiekvieną kartą failuose vesti duomenų bazės (toliau - db) duomenų ar galėtume juos pakeisti ir visu automatiškai pasikeisti.
- Kodas: Pasirinkti visus
<? //trumpoji php failo pradžia (ilgoji - <?php)
$dbserver = 'localhost'; //db serveris (dazniausiai localhost)
$dbuser = 'root'; //db vartotojo vardas
$dbpass = ''; //db vartotojo slaptažodis
$dbname = 'test' //duomenų bazės pavadinimas (vienam vartotojui jų galima susikurti kiek nori ar kiek leidžia hostingas)
?> //php failo/scripto pabaiga
P.S. $dbserver/$dbuser ir kt. (su $ pradžioje) yra kintamieji. Jeigu jau žinote apie kintamuosius, praleiskite antrą punktą.
//2. Kintamieji
Nežinau apibūdinimo kas yra kintamieji, bet savais žodžiais sakyčiau, kad kažkas, kas laiko informaciją

- Kodas: Pasirinkti visus
<?
$fraze = 'Mokausi PHP';
echo $fraze; // Mums parašys: Mokausi PHP (echo - viena pagrindinių php komandų, kuri išveda tekstą (taip pat yra print))
?>
Su kintamaisiais galima ir daryti įvairius aritmetinius veiksmus.
- Kodas: Pasirinkti visus
<?
$skaicius1 = 5;
$skaicius2 = 8;
$skaicius3 = 15;
$rezultatas = $skaicius3 - $skaicius2 - $skaicius1; //15 - 8 - 5
echo $rezultatas; //išves: 2
?>
Šiek tiek sudėtingesnis pvz. While funkcija - tai iš anglų išvertus jau maždaug galim suprasti (while - kol). Naudojimas:
While(sąlyga){
daryti užklausą
};
Pvz:
- Kodas: Pasirinkti visus
<?
$i = 1; //prilyginame kintamąjį $i vienetui
while($i < 10){ //kol $i mažesnis už 10...
echo $i; //išvedame $i reikšmę
$i++ //padidiname $i reikšme vienu
}; //mums išves: 123456789, nes kai $i bus 10 while sąlyga nebeatitiks
?>
//3. Duomenų bazės parengimas
Sukursime duomenų bazėje lentelę. Pavadinsim ją tarkim users (vartotojai).Mums joje reikės stulpelių: vartotojo id, vardas, slaptažodis ir tarkim el. paštas. Galit vykdyti užklausą per phpMyAdmin, arba pasidaryt php failiuką ir jį paleist. Užklausa turi atrodyti taip:
CREATE TABLE pavadinimas (stulpelis tipas(x) parametrai, stulpelis2 tipas(x) parametrai)
Tipai būna įvairūs, mes naudosime:
smallint - mažas skaičius
varchar - tekstas iki 256 simbolių
Nurodydami tipą, skliausteliuose turite nurodyti max simbolių skaičių.
Mūsų užklausa turėtų atrodyti taip:
- Kodas: Pasirinkti visus
CREATE TABLE users (id smallint(5) NOT NULL auto_increment, user_name varchar(50) NOT NULL, user_pass varchar(50) NOT NULL, email varchar(50) NOT NULL, UNIQUE id (id), PRIMARY KEY (id))
UNIQUE ir PRIMARY KEY komandomis, nustatome, kad id yra pirminis raktas ir negali kartotis. auto_increment komanda padaro, kad kiekviena karta id būtų vienu didesnis nei praeitas.
Php užklausa atrodytų taip:
- Kodas: Pasirinkti visus
<?
mysql_query("CREATE TABLE users (id smallint(5) NOT NULL auto_increment, user_name varchar(50) NOT NULL, user_pass varchar(50) NOT NULL, email varchar(50) NOT NULL, UNIQUE id (id), PRIMARY KEY (id))");
?>
//4. Įrašymas į duomenų bazę
Padarysime registraciją. HTML forma (čia nesismulkinsiu, man atrodo yra forume apie HTML daugiau):
- Kodas: Pasirinkti visus
<form action="register.php" method="post"> //pradedame formą, užpildžius eis į register.php, o duomenis perduos post metodu
Vartotojo vardas:<br>
<input type="text" maxlenght="50" name="username"><br>
Slaptažodis: <br>
<input type="password" maxlenght="50" name="password"><br>
Pakartokite slaptažodį: <br>
<input type="password" maxlenght="50" name="password_check"><br>
El. pašto adresas: <br>
<input type="text" maxlenght="50" name="email"><br>
<input type="submit" value="registruotis">
</form>
PHP dalis. Paimsime duomenis ir įdėsime juos į duomenų bazę.
- Kodas: Pasirinkti visus
<?
include("config.php") //pareikalaujame config.php failo (nes ten mūsų duomenų bazės duomenys))
$username = $_POST['username']; //$username kintamojo reikšmę nustatome į įvesto vartotojo vardo
$password = $_POST['password'];
$password_check = $_POST['password_check'];
$userpass = md5(md5($password)); //užkoduojame slaptažodį (šią reikšmę ir kišim į db)
$email = $_POST['email'];
mysql_connect($dbserver,$dbuser,$dbpass); //jungiames prie mysql db
mysql_select_db($dbname) or die("Klaida renkantis duomenų bazę"); //pasirenkame mūsų db. Jeigu neišeina - meta klaidą "Klaida renkantis duomenų bazę"
if($password == $password_check){ //jeigu abu įvesti slaptažodžiai sutampa...
mysql_query("INSERT INTO users VALUES('','$username','$userpass','$email')"); //į db įdedame reikšmes: '' - id nerašome ir jį duos automatiškai vienu didesnį nei praeitas, vartotojo vardą, slaptažodį ir emailą
echo 'Sėkmingai užsiregistravote.'; //parašo - "Sėkmingai užsiregistravote"
}else{ //o jeigu slaptažodžiai nesutampa
echo 'Slaptažodžiai nesutapo'; //parašome textą
}; //užbaigiame if() sąlygą
?>
Ir registracija baigta (paprastasis variantas, dar reiktų dadėti patikrinimą, ar nėra tokio vartotojo vardo). Ėmimas duomenis iš db:
- Kodas: Pasirinkti visus
mysql_connect .... //prisijungiam ir taip toliau
//Tarkim turim vartotojo vardą (kurį įvedė) ir imam iš duomenų bazės eilutę, kurioje būtų toks vardas
$username = $_POST['user_name'];
$query = "SELECT * FROM users WHERE username='$username'"; //nustatome kokia bus užklausa (PASIRINKTI *(viską) IŠ users KUR vartotojovardas lygus kintamąjam (įvestam)
$result = mysql_query($query) //$result reikšmė tai užklausos įvygdymas
$rows = mysql_num_rows($result) //mysql_num_rows - suskaičiuoja kiek yra eilučių rezultate
if($rows == 0){ //jeigu eilučių nulis, reiškia tokio vartotojo vardo nėra
}else{ //jeigu ne nulis, reiškia toks vartotojo vardas jau yra
};
Atvaizduoti duomenis iš MySQL:
- Kodas: Pasirinkti visus
<?
....
//Tarkim turim vartotojo vardą. Atvaizduosime duomenis iš jo:
$result = mysql_query("SELECT * FROM users WHERE username='$username"); //jau matyta eilutė :D
$id = mysql_result($result,'0','id') //mysql_result komanda ištraukia pačius duomenis. Struktūra: mysql_result(resultatas,eilutė,stulpelis). Kadangi šiaip turėtų būt tik viena eilutė su vienu vartotojo vardu, todėl eilutę rašom 0.
//Kitus duomenis taip pat išsitraukiam
$email = mysql_result($result,'0','email');
echo $id; //parašo vartotojo id
echo $email; //parašo vartotojo el. paštą
?>
Šiam kartui tiek. Vėliau padarysiu login'ą, kaip naudot sessijas (vietoj cookies) ir kaip padaryt pvz user-listą (kad visus vartotojus atvaizduotų).