Website Development Prices

Search Blog

Thursday, May 21, 2015

Jednostavan spoj dve tabele (A simple join of two tables)

Nastavak primera iz prethodnog posta.

1. Pokrenite XAMPP. Kliknite na Admin u liniji MySQL-a ili ukucajte u address bar http://localhost/phpmyadmin/

2. Sa leve strane izaberite bazu podataka volimmotore.
3. Ubacite sledeci kod

select porudzbine.brojporudzbine, porudzbine.iznos, porudzbine.date
from kupci, porudzbine
where kupci.ime = 'Nikola Nikolic'
and kupci.sifrakupca = porudzbine.sifrakupca;



4, Klik na dugme "Go".

Wednesday, May 13, 2015

Ucitavanje podataka iz vise tabela istovremeno (Loading data from multiple tables at the same time)


Ako zelite da saznate koji su kupci kupili motore ovog meseca, podatke treba da potrazite u tabelama kupci i porudzbine. Ako hocete da znate sta su ti kupci kupili, podatke treba da potrazite u tabeli stvari_porudzbina.

Za ovo se koristi spajanje (en. join) operacija. 

Primer:

Da biste videli koje sve porudzbine pripadaju Nikoli Nikolicu, prvo treba da u tabeli kupci, u koloni sifrakupca pronadjete njegov identifikator, a zatim sa tim podatkom treba da pretrazite tabelu porudzbine da biste pronasli sve porudzbine s tim identifikatorom.

 Tabele se u MySQL-u mogu spojiti na dva nacina (od kojih svaki ima razlicitu svrhu):

Operatori za poredjenje za odredbu WHERE (The operators of comparison for WHERE clause)


U istom iskazu SELECT mozete da zadate vise uslova istovremeno kao i sintaksu za prepoznavanje uzoraka, koje cete povezati logockcim operatorima AND ili OR.

Primer:

1. Pokrenite XAMPP. Kliknite na Admin u liniji MySQL-a ili ukucajte u address bar
http://localhost/phpmyadmin/

2. Sa leve strane izaberite bazu podataka volimmotore.

Povecanje i smanjenje promenljive za 1 (Incrementing and decrementing the variable to 1)

Operator povecanja (en. increment) je (++).
Operator smanjenja (en. decrement) je (--).

Primer:

Ako je vrednost $motori 0, onda se pomocu operatora ++ ($motori ++) dobija vrednost promenljive $motori od 1. 
Ako je vrednost $motori 10, onda se pomocu operatora -- ($motori --) dobija vrednost promenljive $motori od 9. 

Upotreba operatora ++ i -- pre i posle imena promenljive.

++$motori se naziva prefiks operator.
$motori++ se naziva postfiks operator.

Ako koristite ++$motori vrednost promenljive $motori se povecava, a onda se ta povecana vrednost koristi u ostalom delu iskaza.  

Operatori dodele (Assignment operators)

Operatori dodele:

  • osnovni operator
  • kombinovani operatori
Osnovni operator dodele je =. On promenljivoj dodaje vrednost.

$motori = 10;

Nesto slozeniji primer je podesavanje tri promenljive na istu vrednost. Ovaj kod sacuvajte kao operatori-dodele.php.

<?php
$motor = $kaciga = $rukavice = 1;

echo $motor, ", ", $kaciga, ", ", $rukavice; // rezultat: 1, 1, 1
?>

Matematicki operatori (Mathematical operators)

Matematicki operatori:

  • +     sabira dva broja
  • -      oduzima dva broja
  • *     mnozi dva broja
  • /      deli dva broja
  • % vraca ostatak deljenja dva broja (deljenje po modulu)
Ovaj kod sacuvajte kao mat-operatori.php.


<?php
echo "5 + 2 = " , 5 + 2, "<br>"; // rezultat: 5 + 2 = 7
echo "5 - 2 = " , 5 - 2, "<br>"; // rezultat: 5 - 2 = 3
echo "5 * 2 = " , 5 * 2, "<br>"; // rezultat: 5 * 2 = 10
echo "5 / 2 = " , 5 / 2, "<br>"; // rezultat: 5 / 2 = 2.5
echo "5 % 2 = " , 5 % 2, "<br>"; // rezultat: 5 % 2 = 1
?>

Ovde mozete pogledati ugradjene matematicke funkcije.

Mathematical operators:

+      Adding two numbers
-       Subtracting two numbers
*      Multiplies two numbers
/      Divides two numbers
%     Returns the remainder of dividing two numbers (modulo division)


This code save as math-operators.php.

<?php
echo "5 + 2 = " , 5 + 2, "<br>"; // R: 5 + 2 = 7
echo "5 - 2 = " , 5 - 2, "<br>"; // R: 5 - 2 = 3
echo "5 * 2 = " , 5 * 2, "<br>"; // R: 5 * 2 = 10
echo "5 / 2 = " , 5 / 2, "<br>"; // R: 5 / 2 = 2.5
echo "5 % 2 = " , 5 % 2, "<br>"; // R: 5 % 2 = 1
?>

Here you can see built-in mathematical functions.

Tuesday, May 12, 2015

Ucitavanje podataka upotrebom odredbe WHERE (Loading data using the WHERE clause)

Da biste izdvoji odredjeni podskup  redova iz tabele - zadati uslov za njihov izbor.

Primer: 

select *
from porudzbine
where sifrakupca = 2;

Odredba WHERE ucitava sve kolone iz tabele porudzbine, ali samo iz redova u kojima je identifikator kupca, sifrakupca jednaka 2.

1. Pokrenite XAMPP. Kliknite na Admin u liniji MySQL-a ili ukucajte u address bar http://localhost/phpmyadmin/

2. Sa leve strane izaberite bazu podataka volimmotore.

Ucitavanje podataka iz baze iskazom SELECT (Loading data from the database with statement SELECT)

Postoji mnogo nacina upotrebe, a ovo je primarni oblik iskaza SELECT

SELECT podaci
FROM tabele
[WHERE uslovi]
[GROUP BY grupisanje]
[HAVING uslov grupe]
[ORDER BY redosled]
[LIMIT ogranicenja]
[PROCEDURE ime_proc(argumenti)]
[nacin zakljucavanja];

1. Pokrenite XAMPP. Kliknite na Admin u liniji MySQL-a ili ukucajte u address barhttp://localhost/phpmyadmin/2. Sa leve strane izberite bazu podataka volimmotore
3. Izaberite karticu SQL i unesite kod iz fajla ucitavanje-podataka.sql.


4. Klik na dugme "Go". 

Unosenje podataka u bazu (Inserting data into the database)

Sintaksa za unosenje podataka u bazu

INSERT [INTO] tabela [(kolona1, kolona2, kolona3,...)] VALUES (vrednost1, vrednost2, vrednost3,...);

Primer:

insert into kupci values
(NULL, 'Petar Petrovic', 'Petrova 11', 'Beograd');

Objasnjenje: rec tabela zamenili smo odgovarajucom tabelom kupci, a vrednost1, vrednost2, vrednost3 konkretnim vrednostima. Za brojeve i datume navodnici nisu potrebni. Vrednost NULL smo stavili zato sto smo prilikom definisanja baze podataka volimmotore stavili za kolonu sifrakupca kao AUTO)INCREMENT sto znaci da MySQL , kada tabeli dodate nov red s vrednoscu NULL ili bez vrednosti u tom polju , automatski generisati upisati sledeci redni broj. 

Saturday, May 9, 2015

Tipovi podataka u PHP-u (Data Types in PHP)

Osam tipova podataka koje PHP podrzava:

  • boolean
  • ineteger
  • float
  • string
  • array
  • object
  • resource
  • NULL
boolean - sadrzi vrednost true/false (tacno/ne tacno).

ineteger - sadrzi cele brojeve, kao sto su -2, 7, 0, itd.

float - sadrzi brojeve sa pokretnim zarezom (tip double) kao sto 3.141 ili 2.758.

Konstante koje su unapred definisane (Predefined constants)

Konstante koje su unapred definisane:

__LINE__                                                 trenutni broj reda u datoteci
__FILE__                                                 puna putanja i naziv datoteke
__FUNCTION__                                     ime funkcije (od PHP 4.3.0)
__CLASS__                                              ime klase (od PHP 4.3.0)
__METHOD__                                        ime metoda klase (od PHP 5.0)
PHP_VERSION                                        verzija PHP-a
PHP_OS                                                     operativni sistem
DEFAULT_INCLUDE_PATH               gde da PHP trazi ono sto mu je potrebno

Kljucne reci u PHP-u mozete pogledati ovde (otvara se u novom prozoru).

The constants which are predefined:

__LINE__ Current number of rows in the file
__FILE__ Full path and file name
__FUNCTION__ Function name (since PHP 4.3.0)
__class__ Class name (since PHP 4.3.0)
__METHOD__ Name class method (since PHP 5.0)
PHP_VERSION version of PHP
PHP_OS operating system
DEFAULT_INCLUDE_PATH where to PHP needs search what it needs


Key words in PHP can be found here (opens in new window).

Kreiranje konstanti (Creating constants)

Ako vam zatreba da se promenljiva ne menja tj. treba da njena vrednost bude fiksna, napravite konstante.

Konstante se prave pomocu funkcije define (bez znaka $). Ime konstante pocinje slovom ili podvucenom crtom (_). Konstanti se dodeljuju ime i vrednost

Primer:

define ("pi", 3.141)

Ime konstante je uvek pod duplim navodnicima, dok je vrednost koja se dodeljuje pod navodnicima samo ako je u pitanju string (niz karaktera).

Objasnjenje - Izrada tabela baze podataka (Explanation - Creating database tables)

create table kupci
( customerid int unsigned not null auto_increment primary key,
ime char(50) not null,
adresa char(100) not null,
grad char(30) not null
);


Kada pravite novu tabelu morate da izaberete tipove podataka za nju.

Tabela Kupci ima 4 kolone. Prva kolona SifraKupca, primarni je kljuc. Tip podatka je celobrojni (int) i kolona ne prihvata negativne vrednosti - unsigned. U svim ostalim kolonama vrednost ce biti znakovnog tipa char (polja imaju fiksnu sirinu navedenu u zagradama). 

Char tip podatka uvek dodeljuje 50 znakova za ime, cak i ako se ime sastoji od manje znakova. MySQL ce taj podataka dopuniti razmacima do odgovarajuce velicine.

Znacenja nekih rezervisanih reci (The meanings of some reserved words)

Rezervisane reci:

  • NOT NULL
  • AUTO_INCREMENT
  • PRIMARY KEY
  • UNSIGNED
NOT NULL - taj atribut mora imati vrednost u svim redovima u tabeli. Ako ta opcija nije navedena, polje moze ostati prazno (NULL).

AUTO_INCREMENT - odnosi se na celobrojne kolone. MySQL ce ako prilikom unosenja redova u tabelu ostaviti prazno, austomatski generisati vrednost koja je jednistvena u koloni. Ta vrednost bice za jedan veca od postojece maksimalne vrednosti u koloni.
U tabeli moze da postoji samo jedna kolona definisana kao AUTO_INCREMENT. Takve kolone moraju biti indeksirane.

PRIMARY KEY - iza imena kolone kaze da je ta kolona primarni kljuc tabele. Vrednosti u toj koloni moraju biti jednistvene, a MySQL ce kolonu automatski indeksirati.

Reserved words:

NOT NULL
AUTO_INCREMENT
PRIMARY KEY
UNSIGNED
NOT NULL - this attribute must have a value in all rows in the table. If this option is not specified, the field can be left blank (NULL).

AUTO_INCREMENT - refers to the integer column. MySQL will if while entering the rows of the table left blank, automatically generate value which is unique in the column. This value will be greater for 1 than the current maximum value in the column.
IN the table can be only one column defined as AUTO_INCREMENT. Such columns must be indexed.


PRIMARY KEY - after the name of the column says that column is the primary key of the table. The values in this column must be unified, and MySQL will automatically index the column.

Friday, May 8, 2015

Izrada tabela baze podataka (Creating database tables)

Baza podataka prodavnice VolimMotore.

Kupci (SifraKupca, Ime, Adresa, Grad)
Porudzbine (BrojPorudzbine, SifraKupca, Iznos, Datum)
Motori (BrojMotora, Proizvodjac, ImeMotora, Cena)
Stvari_Porudzbina (BrojPorudzbine, BrojMotora, Kolicina)
Pregled_Motora (BrojMotora, Pregled)

Ovaj kod sacuvajte kao volimmotore.sql.

Sema baze podataka i relacije (Database schema and relations)

Sema je skup svih struktura svih tabela u bazi podataka (en. schema). Sema je nacrt ili plan baze podataka. 

Sema se sastoji od:

  • opisa tabela
  • kolona
  • tipova podataka u tim kolonama
  • primarnog kljuca svake tabele
  • spoljnih kljuceva (ako ima potrebe za njima)
Sema se moze prikazati u vise oblika a mi cemo koristiti tekstualni.

Primer: primarni kljucevi su podebljani, a spoljni kluc je podvucen.

Kupci (SifraKupca, Ime, Adresa, Grad)
Porudzbine (BrojPorudzbine, SifraKupca, Iznos, Datum)

Spoljni kljucevi su relacije (veze) izmedju podataka u dve tabele. U nasem primeru to je SifraKupca.

Koncepti relacionih baza podataka (The concepts of relational databases)

Koncepti relacionih baza podataka:

  • tabele
  • kolone
  • redovi
  • vrednosti
  • kljucevi
Tabele - relacione baze podataka sastoje se od relacija (odnosa izmedju podataka). koje se zovu tabelama. Tabela je tabela podataka.

Kolone - tabela sadrzi kolone u koje su smestene odredjen vrste podataka. Kolone tabela se ponekad nazivaju polja ili atributi tabele. 

Redovi - svaki red u tabeli predstavlja po jednog kupca. Zbog tabelarnog formata svaki red ima iste atribute. Redovi tabela se zovu zapisi.

Promenljive promenljivih (Variables variables)

Promenljiva promenljiva je ona koja sadrzi naziv promenljive. Prvo kreirate promenljivu.

<?php

$motora = 4

?>

Zatim kreirate novu promenljivu sa imenom $plavihMotora. U nju cemo staviti naziv promenljive $suzuki.

<?php

$motora = 4
$plavihMotora = "motora"

?>

Promenljivoj $motora pristupate preko $$plavihMotora.

Interpolacija promenljivih (Interpolation of variables)

Interpolacija promenljivih 1 - koristiti promenljive izmedju duplih navodnika.

<?php

$ime = "Suzuki";
echo "Ja volim $ime"; // rezultat: Ja volim Suzuki
?>

Interpolacija promenljivih 2 - promenljive postavite u viticastu zagradu, da zamenite njenu vrednost unutar reci koja nije odvojena sa bilo kojim razmacima.

<?php
$jedan = "motor";

echo "Gde je {$jedan}bike.";
?>

Interpolation of variables 1 - use variables between the double quotes.

<? php

$name = "Suzuki";
echo "I like $name"; // Result: I like Suzuki
?>

Interpolation 2 variables - variables set in braces, to replace its value within the word that is not separated by any character.

<? php
$one = "motobike";

echo "Where's ${one}bike."
?>

Sunday, May 3, 2015

Pomoc pri otkrivanju gresaka u kodu (Help in detecting errors in the code)

Ako vam se tekst ne prikazuje na stranici a ne izbacuje vam greske mozete koristiti PhpFiddle.


1. Vec je izabrano polje "Initial code without HTML head and body tags"
2. Kliknite na "Get the code" dugme.
3. Ubacite kod izmedju php tagova.

Pravila za PHP promenljive (Rules for PHP variables)

Pravila za PHP promenljive:


  • promenljiva pocinje sa $ znakom, nakon cega sledi ime promenljive
  • naziv promenljive treba poceti sa slovom ili znak podvlakom
  • ime promenljive ne moze poceti s brojem
  • naziv promenljive moze sadrzati samo alfanumericke znakove i podvlake (AZ, 0-9 i _)
  • Imena promenljivih - razlikuju velika i mala slova ($godine i $GODINE su dve razliite promenljive)

Rules for PHP variables:

variable begins with the $ sign, followed by a variable name
variable name should begin with a letter or an underscore character
variable name can not begin with a number
variable name can contain only alphanumeric characters and underscores (AZ, 0-9)
Variable names - are case sensitive ($ year and $ YEAR are two different variables)

Promenljive - rukovanje podacima (Variables - Data Handling)

Promenljive su kontejneri podataka.

Primer: prodajete motore preko Weba i zelite da proverite ukupne zalihe u sva tri magacina, koji se nalaze u Beogradu, Samoboru i Ljubljani. Da bi ste to postigli, morate da zajedno ubacite tri posebne vrednosti.

<?php

$beograd = 1;
$samobor = 2;
$ljubljana = 3;

echo "Ja imam " , $beograd + $samobor + $ljubljana , " motora";
//R: Ja imam 6 motora

?>

Rezultat


Saturday, May 2, 2015

PHP komentari (PHP Comments)

Komentari su napomena koje dodajete na svoje strane da bi ste nekom objasnili sta de desava. Najcesca su dva tipa komentara:

  • Blok komentar
  • Linijski komentar ili komentar u jednom redu
Blok komentar 


<?php
/* Ovo je primer
blok komentara
*/
echo "Pozdrav iz PHP-a.";
?>

Linijski komentar

<?php
// Ovo je primer
# linijskog komentara

echo "Pozdrav iz PHP-a.";
?>

Linijski komentar 2

<?php
// Ovo je drugi primer
// linijskog komentara

echo "Pozdrav iz PHP-a.";
?>

Comments are notes that you add to your side to get you some explaining what is happening. 

The most common are two types of comments:

  • block comment
  • line a comment or a comment in one line


Block comment

<? php
/ * This is an example
block comments
* /
echo "Hello from PHP. ';
?>

Line comment

<? php
// This is the case
# of line comments

echo "Hello from PHP. ';
?>



Iskaz echo za prikaz teksta

1. U editor upisite sledeci tekst

<html>
    <head>
        <title>
            HTML and PHP
        </title>
    </head>

    <body>
        <h1>
<img src="images/logo1.jpg">
            HTML and PHP
        </h1>
        <?php
            phpinfo();
        ?>
        
    </body>
</html>

Napomena: u folderu PHPtuts napravite novi folder images.
2. Sacuvajte kao iskaz-echo.php
3, Pokrenite fajl - http://localhost/PHPtuts/iskaz-echo.php








Pozivanje phpinfo funkcije (Calling function phpinfo)

1. Otvorite vas editor i unesite
<?php
     phpinfo();
?>

2. Sacuvajte kao phpinfo.php (Klik na Localdisk C:, zatim klik na folder xampp, pa klik na folder htdocs, napravite novi folder npr. PHPtuts)
3. Pokrenite fajl - u adress bar upisite http://localhost/xampp/phpinfo.php


Link ka folderu sa fajlovima - http://localhost/PHPtuts/

Instaliranje PHP-a (PHP Installation)

Najpopularnija instalacija PHP-a je preko WAMP-a, MAMP-a, LAMP-a ili XAMPP-a.

Ja koristim XAMPP.

1. Odaberite instalaciju za Vas operativni sistem i kliknite "Download" dugme.
2. Dvoklik na instalaciju i prihvatite sve zadate postavke,
3. Pokrenite xampp.
4. Kliknite "Start" za Apache (treba da bude zeleno).
5. Kliknite "Start" za Mysql (treba da bude zeleno).
6. Potvrdite Mysql instalaciju klikom na "Admin".

Za kucanje koda mozete koristiti Notepad, ili Notepad++. Ja koristim Sublime text 3.


The most popular installation of PHP is with WAMP, MAMP, a LAMP or XAMPP.

I use XAMPP.

1. Select the installation of your operating system and click "Download" button.
2. Double click on the installer and accept all the default settings.
3. Run the XAMPP.
4. Click "Start" for Apache (it should be green).
5. Click "Start" to Mysql (should be green).
6. Confirm the MySQL installation by clicking on "Admin".

For typing of code you can use Notepad or Notepad ++. I use Sublime Text 3.