oktatas:programozas:php:php_penztar
Tartalomjegyzék
PHP Pénztár
- Szerző: Sallai András
- Copyright © Sallai András, 2020
- Web: https://szit.hu
Bevezetés
Egy nagyon egyszerű házipénztárt fogunk készíteni.
Adatbázis
- penztar.sql
-- tábla létrehozása create table tarca ( az int not null primary key auto_increment, penz double, leiras varchar(100), datum timestamp ) -- mintaadatok insert into tarca (penz, leiras) values (850000, 'fizetés'), (-45000, 'monitor LG'), (-2000, 'egér Hama');
Könyvtárszerkezet
penztar/ |-css/ | `-style.css | |-includes/ | |-config.php | `-db.php | |-templates/ | |-egyenleg.tpl | |-felvesz.tpl | |-felveszUrlap.tpl | |-foot.tpl | |-head.tpl | |-index.tpl | |-lista.tpl | |-menu.tpl | |-tableFoot.tpl | |-tableHead.tpl | `-tableRow.tpl | |-egyenleg.php |-felvesz.php |-felveszUrlap.php |-index.php `-lista.php
Fájlok
- index.php
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/index.tpl'); echo file_get_contents('templates/foot.tpl');
- penztar.php
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/menu.tpl'); echo file_get_contents('templates/penztar.tpl'); echo file_get_contents('templates/foot.tpl');
- templates/penztar.tpl
<h1>Pénztár</h1> <p>Az Egyenleg fülőn kérdezheti le az aktuális egyenleget.</p> <p> A Felvesz fülőn új tételt vehet fel. A kiadásokat negatív előjellel kell felvenni. </p> <p>A Lista menüpont alatt megnézheti a kiadások és bevételek listáját.</p>
- includes/config.php
<?php $db['host'] = 'localhost'; $db['user'] = 'penztar'; $db['pass'] = 'titok'; $db['name'] = 'penztar';
- includes/db.php
include 'config.php'; function connectDb() { global $db; $conn = mysqli_connect( $db['host'], $db['user'], $db['pass'], $db['name'] ); /* XAMPP-ban ez nem fut hibára mysqli_query() azt írja, nincs adatbázis kiválasztva */ if(!$conn) { die('Hiba a kapcsolódás során: ' . mysqli_connect_error()); } return $conn; } function closeDb($conn) { mysqli_close($conn); } //beszúrás function insertItem($conn, $tomb){ $sql = <<<EOT insert into tarca (penz, leiras) values ('{$tomb['penz']}', '{$tomb['leiras']}') EOT; if(mysqli_query($conn, $sql)) { return true; }else { echo mysqli_error($conn); return false; } } //lista function getItems($conn) { $sql = "select az, penz, leiras, date(datum) as datum from tarca"; $res = mysqli_query($conn, $sql); $datas = array(); while($sor = mysqli_fetch_assoc($res)) { array_push($datas, array( $sor['az'], $sor['penz'], $sor['leiras'], $sor['datum'] ) ); } return $datas; } //egyenleg function getBalance($conn) { global $db; $sor = 0; $sql = "select sum(penz) as balance from tarca"; if($res = mysqli_query($conn, $sql)) { $sor = mysqli_fetch_assoc($res); }else { echo "Hiba: " . mysqli_error($conn); } return $sor['balance']; }
- egyenleg.php
<?php include 'includes/db.php'; echo file_get_contents('templates/head.tpl'); $conn = connectDb(); $egyenleg = getBalance($conn); closeDb($conn); echo file_get_contents('templates/menu.tpl'); $page = file_get_contents('templates/egyenleg.tpl'); $page = str_replace('{ egyenleg }', $egyenleg, $page); echo $page; echo file_get_contents('templates/foot.tpl');
- templates/egyenleg.tpl
<h1>Egyenleg</h1> <p>Az aktuális egyenleg: { egyenleg }</p>
- felveszUrlap.php
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/menu.tpl'); echo file_get_contents('templates/felveszUrlap.tpl'); echo file_get_contents('templates/foot.tpl');
- templates/felveszUrlap.tpl
<form action="felvesz.php" method="post"> <label for="penz">Pénz összeg</label> <input type="text" name="penz"> <br> <label for="leiras">Leírás</label> <input type="text" name="leiras"> <br> <button type="submit">Felvesz</button> </form>
- felvesz.php
<?php include 'includes/db.php'; echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/menu.tpl'); $penz = $_POST['penz']; $leiras = $_POST['leiras']; $datas['penz'] = $penz; $datas['leiras'] = $leiras; $conn = connectDb(); if(insertItem($conn, $datas)) { $msg = "Sikeres felvétel"; }else { $smg = "Hiba! A felvétel nem sikerült"; } closeDb($conn); $page = file_get_contents('templates/felvesz.tpl'); $page = str_replace('{ msg }', $msg, $page); echo $page; echo file_get_contents('templates/foot.tpl');
- templates/felvesz.tpl
<h1>Új elem felvétele</h1> <p>{ msg }</p>
- lista.php
<?php include 'includes/db.php'; echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/menu.tpl'); $conn = connectDb(); $penzek = getItems($conn); closeDb($conn); $tableRows = ""; foreach($penzek as list($az, $penz, $leiras, $datum)) { $tableRow = file_get_contents('templates/tableRow.tpl'); $tableRow = str_replace('{ az }', $az, $tableRow); $tableRow = str_replace('{ penz }', $penz, $tableRow); $tableRow = str_replace('{ leiras }', $leiras, $tableRow); $tableRow = str_replace('{ datum }', $datum, $tableRow); $tableRows .= $tableRow; } $page = file_get_contents('templates/lista.tpl'); $page = str_replace('{ tableRows }', $tableRows, $page); echo $page; echo file_get_contents('templates/foot.tpl');
oktatas/programozas/php/php_penztar.txt · Utolsó módosítás: 2020/08/28 20:25 szerkesztette: admin