Pracuję nad pewnym skryptem i teraz piszę jego moduł - "Postęp prac".
Już mam działania matematyczne i bazę.
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
--
-- Host: localhost
-- Czas wygenerowania: 11 Kwi 2010, 08:18
-- Wersja serwera: 5.1.37
-- Wersja PHP: 5.3.0
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Baza danych: `allpage`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla `dozrobienia`
--
CREATE TABLE IF NOT EXISTS `dozrobienia` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`wersja` int(11) NOT NULL, -- id wersji
`zadanie` varchar(5000) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`postep` int(11) NOT NULL,
`waga` int(11) NOT NULL,
`odwolane` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=4 ;
--
-- Zrzut danych tabeli `dozrobienia`
--
INSERT INTO `dozrobienia` (`id`, `wersja`, `zadanie`, `postep`, `waga`, `odwolane`) VALUES
(1, 1, 'Zrobić postęp prac', 90, 25, 0),
(2, 1, 'System użytkowników', 2, 90, 0),
(3, 1, 'Panel administracyjny', 0, 70, 0);
-- --------------------------------------------------------
--
-- Struktura tabeli dla `wersje`
--
CREATE TABLE IF NOT EXISTS `wersje` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`wersja` varchar(20) COLLATE utf8_polish_ci NOT NULL,
`data` int(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;
--
-- Zrzut danych tabeli `wersje`
--
INSERT INTO `wersje` (`id`, `wersja`, `data`) VALUES
(1, '0.0.1', 1270917488);
W tym kodzie umieściłem komentarz o tym, że w tabeli dozrobienia pole wersja oznacza ID z tabeli wersje.
Kod PHP:
<?php
$result = mysql_query("SELECT * FROM wersje ORDER BY data DESC"); echo "<h3>".$row['wersja']." - ".date("d-m-Y")."<span id='lol'>20</span></h3>"; $result = mysql_query("SELECT * FROM dozrobienia WHERE wersja=".$row['id']); $wagirazem = 0;
$wynikrazem = 0;
if ($row2['odwolane']) {
echo "<span class='przekreslony'>? ".$row2['zadanie']." - ".$row2['postep']."%</span>"; } else {
echo "? ".$row2['zadanie']." - ".$row2['postep'].'%'; $wagirazem = $wagirazem + $row2['waga'];
$prolol = $row2['postep'] * ($row2['waga'] / 100);
$wynikrazem = $wynikrazem + $prolol;
}
}
echo "<script type='text/javascript'> document.getElementById('lol').innerText = ' - ";
echo round(($wynikrazem / $wagirazem) * 100
); </script>";
}
?>
Chodzi mi o 2 rzeczy:
1.Jak zoptymalizować to:
<?php
$result = mysql_query("SELECT * FROM wersje ORDER BY data DESC"); echo "<h3>".$row['wersja']." - ".date("d-m-Y")."<span id='lol'>20</span></h3>"; $result = mysql_query("SELECT * FROM dozrobienia WHERE wersja=".$row['id']); $wagirazem = 0;
$wynikrazem = 0;
if ($row2['odwolane']) {
echo "<span class='przekreslony'>? ".$row2['zadanie']." - ".$row2['postep']."%</span>"; } else {
echo "? ".$row2['zadanie']." - ".$row2['postep'].'%'; $wagirazem = $wagirazem + $row2['waga'];
$prolol = $row2['postep'] * ($row2['waga'] / 100);
$wynikrazem = $wynikrazem + $prolol;
}
}
Chodzi o zamienienie tak kodu, aby była w nim tylko jedna instrukcja While, a nie dwie.
2.Czym zastąpić to:
echo "<script type='text/javascript'> document.getElementById('lol').innerText = ' - ";
echo round(($wynikrazem / $wagirazem) * 100
); </script>";
Skrypt zmienia zawartość tego spana:
na procent postępu:
echo round(($wynikrazem / $wagirazem) * 100
);
3. Jak znajdziecie inne błędy to piszcie.
Ten post edytował djmati11 11.04.2010, 07:27:40