bozic.docx · web viewproblem koji se resava u ovom seminarskom radu je prijava takmicara na...

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 01-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bozic.docx · Web viewProblem 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

Univerzitet u Novom Sadu Tehnički fakultet »MihajloPupin« 

Zrenjanin

 

SEMINARSKI RADPredmet: Informacioni Sistemi 2

Tema: Prijava takmicara na sahovski turnirTehničkog fakulteta „Mihajlo Pupin“ Zrenjanin

  

Profesor : Student:Biljana Radulovic Srdjan Bozic IT 33/14Asistent:Zoltan Kazi

Zrenjanin,  2018. godina

Page 2: Bozic.docx · Web viewProblem 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

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.

Page 3: Bozic.docx · Web viewProblem 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

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.

Page 4: Bozic.docx · Web viewProblem 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

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.

Page 5: Bozic.docx · Web viewProblem 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

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.

Page 6: Bozic.docx · Web viewProblem 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

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.

Page 7: Bozic.docx · Web viewProblem 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

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

Page 8: Bozic.docx · Web viewProblem 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

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

Page 9: Bozic.docx · Web viewProblem 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

<?phpclass 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 "<p class='success'>Uspesno upisano!</p>";$this->disconnect();

}else{echo "<p class='error'>Nije upisano!</p>";$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 "<p class='success'>Uspesno

izmenjeno</p>";$this->disconnect();

}else{echo "<p class='error'>Nije izmenjeno</p>";mysqli_free_result($izmeni);$this->disconnect();

}}

Page 10: Bozic.docx · Web viewProblem 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

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 "<p class='success'>Uspesno obrisano!</p>";$this->disconnect();

}else{echo "<p class='error'>Nije izbrisano!</p>";$this->disconnect();

}}

}?>

Page 11: Bozic.docx · Web viewProblem 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

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 "<p class='nestoNovo'><input id='myInput' class='filter'type='text'placeholder='Filtriraj'></p>";

echo "<table class='ispisTakmicara' id='kojiOces'>";

echo "<tr id='hello'><th>Redni broj takmicenja</th><th>Naziv takmicenja</th><th>Igraci</th><th>Mesto odrzavanja takmicenja</th></tr>";

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

echo "<tr><td>".$row[0].".</td><td>".$row[2]."</td><td>".$row[3]." < = > ".$row[1]."</td><td>".$row[4]."</td></tr>";

}echo "</table>";$this->disconnect();include("delovi/footer.php");exit();

}else{$this->disconnect();echo "<p class='error'>Nema unetih takmicenja!

</p>";include("delovi/footer.php");exit();

}} } ?>

Page 12: Bozic.docx · Web viewProblem 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

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 "<table class='ispisTakmicara'>";echo "<tr><th>ID_mesta</th><th>Naziv

mesta</th></tr>";while($row =

mysqli_fetch_array($izvrsi,MYSQLI_ASSOC)){echo "<tr><td>".$row['ID_mesto']."</td><td>".

$row['naziv']."</td></tr>";}echo "</table>";

}}

?>

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.

Page 13: Bozic.docx · Web viewProblem 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

Unos takmicara u bazu PHP:

<?php

//PROVERAVA DA LI SI KLIKNUO NA SUBMITif($_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();

}}?>

Page 14: Bozic.docx · Web viewProblem 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

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 "<p class='nestoNovo'><input id='myInput' class='filter' type='text' placeholder='Filtriraj'></p>";

/*ispisuje takmicare*/

echo "<table class='ispisTakmicara' id='kojiOces'>";echo "<tr id='hello'><th>Redni broj

takmicara</th><th>Prezime i ime</th><th>Klub</th><th>Datum rodjenja</th><th>Mesto</th><th>Adresa</th><th>Izmeni / Obrisi</th></tr>";

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

echo "<tr><td>".$row[6].".</td><td>".$row[3]." ".$row[2]."</td><td>".$row[7]."</td><td>".$row[8]."</td><td>".$row[0]."</td><td>".$row[4]."</td>

<td><a href='izmeni_takmicara.php?

ID_takmicara=$row[6]' class='izmeni'>Izmeni</a>

Page 15: Bozic.docx · Web viewProblem 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

<a href='obrisi_takmicara.php?ID_takmicara=$row[6]'class='obrisi'>Obrisi</a></td></tr>";

} echo "</table>";

Filter: JavaScript, headerPozivom 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 "<p class='nestoNovo'><input id='myInput' class='filter' type='text' placeholder='Filtriraj'></p>";...Index: <script> $(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); }); }); });</script>

Stampa:

Page 16: Bozic.docx · Web viewProblem 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

$upit = "SELECT CONCAT(prezime,' ',ime),klub FROM takmicar";$stampa = mysqli_query($conn->konekcijaMYSQL,$upit) or

die(mysqli_error($conn->konekcijaMYSQL));

if($stampa){echo "<table border='1' class='stampaTakmicara'>";echo "<tr><th>Ime i prezime</th><th>Klub</th></tr>";

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

echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";

}

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

Page 17: Bozic.docx · Web viewProblem 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

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,

Page 18: Bozic.docx · Web viewProblem 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

`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`

Page 19: Bozic.docx · Web viewProblem 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

--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`);

--

Page 20: Bozic.docx · Web viewProblem 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

-- Constraints for table `takmicenje`--ALTER TABLE `takmicenje` ADD CONSTRAINT `FK_mesto` FOREIGN KEY (`ID_mesta`) REFERENCES `mesto` (`ID_mesto`);COMMIT;