tfzr.rstfzr.rs/content/files/0/srdjan bozic.docx · web viewza filter je koriscen java script, a...

25
Univerzitet u Novom Sadu Tehnički fakultet »MihajloPupin« Zrenjanin SEMINARSKI RAD Predmet: Informacioni Sistemi 2 Tema: Prijava takmicara na sahovski turnir Tehničkog fakulteta „Mihajlo Pupin“ Zrenjanin Profesor : Student: Biljana Radulovic Srdjan Bozic IT 33/14

Upload: others

Post on 06-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Univerzitet u Novom Sadu Tehnički fakultet »MihajloPupin« Zrenjanin

 

SEMINARSKI RAD

Predmet: Informacioni Sistemi 2

Tema: Prijava takmicara na sahovski turnir

Tehničkog fakulteta „Mihajlo Pupin“ Zrenjanin

 

 

Profesor :Student:

Biljana RadulovicSrdjan Bozic IT 33/14

Asistent:

Zoltan Kazi

Zrenjanin,  2018. godina

Opis problema:

Problem koji se resava u ovom seminarskom radu je prijava takmicara na sahovski turnir od strane sahovskog saveza. U ovoj prijavi takmicara veoma je bitno navesti imena i prezimena takmicara, njihove, klubove kao i mesta odakle takmicari dolaze. Takodje je bitna i mogucnost pretrage i izmene takmicara i njihovo brisanje kao i stampa spiska svih takmicara. Pored unosenja takmicara u program, potrebno je da imamo i unos takmicenja na kojem takmicari ucestvuju.

Opis primenejene tehnologije:

Ovaj seminarski radjen je pomocu XAMPP CONTROL PANEL-a na localhostu. Baza seminarskog rada radjena je u MYSQL-u. Za filter je koriscen Java Script, a ostatak koda je kucan u PHP-u, HTML-u i CSS-u.

Korisnicko uputstvo:

1. Pocetna stranica programa

2. Unos podataka:

Poto se mesto nalazi kao strani kljuc u klasama takmicar i takmicenje, potrebno je prvo uneti mesta gde se odrzavaju takmicenja i mesta iz kojih dolaze takmicari.

Nakon sto korisnik unese mesto, potrebno je da unese takmicare koji ucestvuju na takmicenju i koji se opisuju imenom, prezimenom, klubom, datumom rodjenja, mestom odakle dolaze, kao i adresom.

Svako takmicenje karakterise se nazivom, mestom i takmicarima koji se na njemu takmice.

Da bi korisnik mogao lakse da pronadje takmicare ili takmicenja koja je uneo, napravljena je opcija pretraga u kojoj korisnik pomocu bilo kog parametra moze lakse da pronadje sve sto trazi.

Korisnik moze u pretrazi takmicara da izmeni ili obrise takmicara.

Korisnik ima mogucnost da istampa spisak svih takmicara koje je uneo pomocu opcije STAMPA TAKMICARA

Klase:

1.Konekcija

<?php

class Konekcija{

public $konekcijaMYSQL;

private $konekcijaDB;

private $nazivbaze;

public function __construct(){

}

public function disconnect(){

mysqli_close($this->konekcijaMYSQL);

}

public function connect(){

$xml= simplexml_load_file("xmlkonekcije.xml") or die("Error: Cannot create object");

$host = $xml->host;

$korisnik = $xml->korisnik;

$sifra = $xml->sifra;

$this->nazivbaze = $xml->nazivbaze;

$this->konekcijaMYSQL = mysqli_connect($host, $korisnik, $sifra,$this->nazivbaze);

if ($this->konekcijaDB) {

mysqli_query('SET NAMES "utf8"',$this->konekcijaMYSQL);

}

}

}

2.Takmicar

<?php

class Takmicar extends Konekcija{

public function upisi($upit){

$this->connect();

$this->konekcijaMYSQL;

$sql_upit = $upit;

$result = mysqli_query($this->konekcijaMYSQL,$sql_upit) or die(mysqli_error($this->konekcijaMYSQL));

if($result){

echo "

Uspesno upisano!

";

$this->disconnect();

}else{

echo "

Nije upisano!

";

$this->disconnect();

}

}

public function izmeni($ime,$prezime,$adresa,$mesto,$klub,$datum_rodjenja, $ID_takmicar){

$this->connect();

$this->konekcijaMYSQL;

$upit = "UPDATE takmicar SET ime = '$ime', prezime = '$prezime', adresa = '$adresa',ID_mesta = $mesto,klub = '$klub', datum_rodjenja = '$datum_rodjenja' WHERE ID_takmicar = $ID_takmicar";

$izmeni = mysqli_query($this->konekcijaMYSQL,$upit) or die(mysqli_error($this->konekcijaMYSQL));

if($izmeni == 1){

echo "

Uspesno izmenjeno

";

$this->disconnect();

}else{

echo "

Nije izmenjeno

";

mysqli_free_result($izmeni);

$this->disconnect();

}

}

public function obrisi($upit){

$this->connect();

$this->konekcijaMYSQL;

$sql_upit = $upit;

$result = mysqli_query($this->konekcijaMYSQL,$sql_upit) or die(mysqli_error($this->konekcijaMYSQL));

if($result == 1){

echo "

Uspesno obrisano!

";

$this->disconnect();

}else{

echo "

Nije izbrisano!

";

$this->disconnect();

}

}

}

?>

3.Takmicenje

<?php

class Takmicenje extends Konekcija{

public function ispisi(){

$this->connect();

$q = "SELECT takmicenje.ID_takmicenje,takmicenje.takmicar1,takmicenje.naziv,CONCAT(takmicar.prezime,' ',takmicar.ime),mesto.naziv FROM takmicenje JOIN mesto ON takmicenje.ID_mesta = mesto.ID_mesto JOIN takmicar ON takmicenje.ID_takmicar = takmicar.ID_takmicar";

$upit = mysqli_query($this->konekcijaMYSQL,$q) or die(mysqli_error($this->konekcijaMYSQL));

$upit_broj = mysqli_num_rows($upit);

if($upit_broj != 0){

echo "

";

echo "

";

echo "

Redni broj takmicenjaNaziv takmicenjaIgraciMesto odrzavanja takmicenja";

while($row = mysqli_fetch_array($upit,MYSQLI_NUM)){

echo "

".$row[0].".".$row[2]."".$row[3]." < = > ".$row[1]."".$row[4]."";

}

echo "

";

$this->disconnect();

include("delovi/footer.php");

exit();

}else{

$this->disconnect();

echo "

Nema unetih takmicenja!

";

include("delovi/footer.php");

exit();

}

} } ?>

4.Mesto

<?php

class Mesto extends Konekcija{

public function ispisi(){

$this->connect();

$this->konekcijaMYSQL;

$upit = "SELECT ID_mesto,naziv FROM mesto";

$izvrsi = mysqli_query($this->konekcijaMYSQL,$upit) or die(mysqli_error($this->konekcijaMYSQL));

echo "

";

echo "

ID_mestaNaziv mesta";

while($row = mysqli_fetch_array($izvrsi,MYSQLI_ASSOC)){

echo "

".$row['ID_mesto']."".$row['naziv']."";

}

echo "

";

}

}

?>

Klasa Mesto ima metodu za iscitavanje svih unetih mesta.

Klasa Takmicenje ima metodu za ispisivanje svih unetih takmicenja.

Klasa Takmicar ima metode za upis izmenu i brisanje.

Klasa Konekcija sluzi za konekciju programa sa bazom.

Posto se u unosu takmicara i takmicenja nalazi unos za mesto, ID_MESTO je strani kljuc za takmicenje i takmicara.

Unos takmicara u bazu PHP:

<?php

//PROVERAVA DA LI SI KLIKNUO NA SUBMIT

if($_SERVER["REQUEST_METHOD"] == "POST"){

//OD KLASE PRAVI OBJEKAT

$takmicar = new Takmicar();

//uzimaju se vrednosti iz svih polja za takmicara

$ime = $_POST["ime_takmicara"];

$prezime = $_POST["prezime_takmicara"];

$klub = $_POST["klub"];

$datumrodjenja = $_POST["datumrodjenja"];

$adresa_takmicara = $_POST['adresa_takmicara'];

$mesto_odrzavanja = $_POST['mesto_odrzavanja'];

//upit za upis

$q = "INSERT INTO takmicar(ID_mesta,adresa,ime,prezime,klub, datum_rodjenja)

VALUES($mesto_odrzavanja,'$adresa_takmicara','$ime','$prezime','$klub','$datumrodjenja')";

$takmicar->upisi($q);

$conn->disconnect();

include("delovi/footer.php");

exit();

}

}

?>

Lista takmicara:

mysqli_query- izvrsava upit nad bazom koji sam napisao

mysqli_fetch_array- pravi niz od podataka dobijenih izvrsavanjem funkcije iznad i zajedno sa while petljom ga ispisuje.

$ispisiTakmicare = "SELECT mesto.naziv,mesto.ID_mesto,ime,prezime,adresa,takmicar.ID_mesta,takmicar.ID_takmicar,klub,datum_rodjenja FROM takmicar JOIN mesto ON mesto.ID_mesto = takmicar.ID_mesta";

$upit_zaIspis = mysqli_query($conn->konekcijaMYSQL,$ispisiTakmicare) or die(mysqli_error($conn->konekcijaMYSQL));

$broj_redova = mysqli_num_rows($upit_zaIspis);

if($broj_redova != 0){

echo "

";

/*ispisuje takmicare*/

echo "

";

echo "

Redni broj takmicaraPrezime i imeKlubDatum rodjenjaMestoAdresaIzmeni / Obrisi";

while($row = mysqli_fetch_array($upit_zaIspis,MYSQLI_NUM)){

echo "

".$row[6].".".$row[3]." ".$row[2]."".$row[7]."".$row[8]."".$row[0]."".$row[4]."

Izmeni

Obrisi

";

} echo "

";

Filter: JavaScript, header

Pozivom metode .on nad input poljem koje ima ID MyInput se proverava da li je nesto uneto u to polje i da li se nasto tako nalazi u tabeli ne racunajuci zaglavlje tabele.

ListaTakmicara:

echo "

";

.

.

.

Index:

$(document).ready(function(){

$("#myInput").on("keyup", function() {

var value = $(this).val().toLowerCase();

$("#kojiOces tr:not(#hello)").filter(function() {

$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);

});

});

});

Stampa:

$upit = "SELECT CONCAT(prezime,' ',ime),klub FROM takmicar";

$stampa = mysqli_query($conn->konekcijaMYSQL,$upit) or die(mysqli_error($conn->konekcijaMYSQL));

if($stampa){

echo "

";

echo "

Ime i prezimeKlub";

while($row = mysqli_fetch_array($stampa,MYSQLI_NUM)){

echo "

".$row[0]."".$row[1]."";

}

Slicno kao kod liste takmicara i ovde ispisuje sve upisane takmicare za stampanje.

SQL:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;

START TRANSACTION;

SET time_zone = "+00:00";

Database: `sah_takmicenje`

--

create database sah_takmicenje; use sah_takmicenje;

-- --------------------------------------------------------

--

-- Table structure for table `mesto`

--

CREATE TABLE `mesto` (

`ID_mesto` int(30) NOT NULL,

`naziv` varchar(30) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `mesto`

--

INSERT INTO `mesto` (`ID_mesto`, `naziv`) VALUES

(1, 'Sombor'),

(2, 'Novi Sad'),

(3, 'Zrenjanin'),

(4, 'Backa Palanka');

-- --------------------------------------------------------

--

-- Table structure for table `takmicar`

--

CREATE TABLE `takmicar` (

`ID_takmicar` int(20) NOT NULL,

`ID_mesta` int(30) NOT NULL,

`ime` varchar(15) NOT NULL,

`prezime` varchar(25) NOT NULL,

`adresa` varchar(20) NOT NULL,

`datum_rodjenja` varchar(20) NOT NULL,

`klub` varchar(25) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--

-- Table structure for table `takmicenje`

--

CREATE TABLE `takmicenje` (

`ID_takmicenje` int(25) NOT NULL,

`ID_takmicar` int(20) NOT NULL,

`ID_mesta` int(30) NOT NULL,

`naziv` varchar(20) NOT NULL,

`takmicar1` varchar(50) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Indexes for dumped tables

--

--

-- Indexes for table `mesto`

--

ALTER TABLE `mesto`

ADD PRIMARY KEY (`ID_mesto`);

--

-- Indexes for table `takmicar`

--

ALTER TABLE `takmicar`

ADD PRIMARY KEY (`ID_takmicar`),

ADD KEY `FK_mesto_takmicar` (`ID_mesta`);

--

-- Indexes for table `takmicenje`

--

ALTER TABLE `takmicenje`

ADD PRIMARY KEY (`ID_takmicenje`),

ADD KEY `FK_mesto` (`ID_mesta`);

--

-- AUTO_INCREMENT for dumped tables

--

--

-- AUTO_INCREMENT for table `mesto`

--

ALTER TABLE `mesto`

MODIFY `ID_mesto` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--

-- AUTO_INCREMENT for table `takmicar`

--

ALTER TABLE `takmicar`

MODIFY `ID_takmicar` int(20) NOT NULL AUTO_INCREMENT;

--

-- AUTO_INCREMENT for table `takmicenje`

--

ALTER TABLE `takmicenje`

MODIFY `ID_takmicenje` int(25) NOT NULL AUTO_INCREMENT;

--

-- Constraints for dumped tables

--

--

-- Constraints for table `takmicar`

--

ALTER TABLE `takmicar`

ADD CONSTRAINT `FK_mesto_takmicar` FOREIGN KEY (`ID_mesta`) REFERENCES `mesto` (`ID_mesto`);

--

-- Constraints for table `takmicenje`

--

ALTER TABLE `takmicenje`

ADD CONSTRAINT `FK_mesto` FOREIGN KEY (`ID_mesta`) REFERENCES `mesto` (`ID_mesto`);

COMMIT;