Compare commits
No commits in common. "dev" and "tomasz" have entirely different histories.
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 184 KiB |
15
get.php
Normal file
15
get.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
$pol = mysqli_connect("localhost", "root","","szkolenia");
|
||||||
|
|
||||||
|
$kw = mysqli_query($pol, "SELECT nazwa,cena, czas_trwania FROM kursy ORDER BY id");
|
||||||
|
|
||||||
|
$json = array();
|
||||||
|
|
||||||
|
while ($row = mysqli_fetch_assoc($kw)) {
|
||||||
|
$json[] = $row;
|
||||||
|
}
|
||||||
|
mysqli_close($pol);
|
||||||
|
|
||||||
|
echo json_encode($json)
|
||||||
|
|
||||||
|
?>
|
||||||
55
i1.html
55
i1.html
@ -1,55 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="pl">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Kursy komputerowe</title>
|
|
||||||
<link rel="stylesheet" href="css/layout.css">
|
|
||||||
<script src="js/script.js" defer> </script>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<img src="imgs/baner.png" alt="kursy komputerowe">
|
|
||||||
<div class="header-text">hello</div>
|
|
||||||
</header>
|
|
||||||
<nav>
|
|
||||||
<a href="i1.html">Strona główna</a>
|
|
||||||
<a href="raty.html">Koszt rat</a>
|
|
||||||
<a href="https://moje-szkolenia.pl/">Nasz partner</a>
|
|
||||||
</nav>
|
|
||||||
<main>
|
|
||||||
<h3>Kursy komputerowe - programowanie</h3>
|
|
||||||
<table id="tab">
|
|
||||||
<tr>
|
|
||||||
<th>Kurs</th>
|
|
||||||
<th>Czas trwania</th>
|
|
||||||
<th>Cena</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>React.js</td>
|
|
||||||
<td>4 miesiące</td>
|
|
||||||
<td>1500 zł</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>JavaScript</td>
|
|
||||||
<td>3 miesiące</td>
|
|
||||||
<td>1200 zł</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>HTML + CSS</td>
|
|
||||||
<td>2 miesiące</td>
|
|
||||||
<td>800 zł</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<h3>Adres do korespondencji</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Adres: Katowice, ul. Mariacka 5</li>
|
|
||||||
<li>Telefon: 32 888 88 88</li>
|
|
||||||
</ul>
|
|
||||||
<a href="mailto:kursy@komputerowe.pl">skontaktuj się</a>
|
|
||||||
</main>
|
|
||||||
<footer>
|
|
||||||
<p>Autor strony: 99010101010</p>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
27
index.html
Normal file
27
index.html
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="pl">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Kursy komputerowe</title>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<script src="script.js" defer> </script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<img src="baner.png">
|
||||||
|
</header>
|
||||||
|
<nav>
|
||||||
|
<a href="">strona główna</a>
|
||||||
|
<a href=""> cos wiecej</a>
|
||||||
|
<a href=""> cos jeszcze wiecej </a>
|
||||||
|
</nav>
|
||||||
|
<br>
|
||||||
|
<table id="tab">
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<p>super strona by tomasz</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
js/script.js
44
js/script.js
@ -1,44 +0,0 @@
|
|||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
console.log("ok");
|
|
||||||
|
|
||||||
const fetchData = () => {
|
|
||||||
return fetch('./php/get.php')
|
|
||||||
.then(response => {
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error('Błąd pobierania danych');
|
|
||||||
}
|
|
||||||
return response.json();
|
|
||||||
})
|
|
||||||
.then(data => {
|
|
||||||
console.log("Dane załadowane:", data);
|
|
||||||
renderTable(data); // Wywołaj funkcję renderującą tabelę
|
|
||||||
})
|
|
||||||
.catch(error => {
|
|
||||||
console.error("Błąd:", error);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// Funkcja do renderowania danych w tabeli
|
|
||||||
const renderTable = (data) => {
|
|
||||||
const table = document.getElementById('tab');
|
|
||||||
|
|
||||||
// Usuń wszystkie rzędy po nagłówku (czyli od drugiego)
|
|
||||||
while (table.rows.length > 1) {
|
|
||||||
table.deleteRow(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dodaj nowe wiersze dla każdego kursu
|
|
||||||
data.forEach(row => {
|
|
||||||
const tr = document.createElement('tr');
|
|
||||||
tr.innerHTML = `
|
|
||||||
<td>${row.kurs}</td>
|
|
||||||
<td>${row.czas_trwania}</td>
|
|
||||||
<td>${row.cena}</td>
|
|
||||||
`;
|
|
||||||
table.appendChild(tr);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// Uruchom pobieranie danych
|
|
||||||
fetchData();
|
|
||||||
});
|
|
||||||
16
php/get.php
16
php/get.php
@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
$polaczenie = mysqli_connect("172.18.0.2", "root", "secret", "szkolenia");
|
|
||||||
|
|
||||||
$kwerenda = mysqli_query($polaczenie, "SELECT REPLACE(k.nazwa, 'Kurs ', '') AS kurs, k.czas_trwania AS czas_trwania, CONCAT(k.cena, ' zł') AS cena FROM kursy k ORDER BY k.id");
|
|
||||||
|
|
||||||
$json = array();
|
|
||||||
|
|
||||||
while ($row = mysqli_fetch_assoc($kwerenda)) {
|
|
||||||
$json[] = $row;
|
|
||||||
}
|
|
||||||
|
|
||||||
mysqli_close($polaczenie);
|
|
||||||
|
|
||||||
echo json_encode($json );
|
|
||||||
?>
|
|
||||||
|
|
||||||
50
raty.html
50
raty.html
@ -1,50 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="pl">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Kursy komputerowe</title>
|
|
||||||
<link rel="stylesheet" href="css/layout.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<img src="imgs/baner.png" alt="kursy komputerowe">
|
|
||||||
<div class="header-text">hello</div>
|
|
||||||
</header>
|
|
||||||
<nav>
|
|
||||||
<a href="i1.html">Strona główna</a>
|
|
||||||
<a href="raty.html">Koszt rat</a>
|
|
||||||
<a href="https://moje-szkolenia.pl/">Nasz partner</a>
|
|
||||||
</nav>
|
|
||||||
<main>
|
|
||||||
<h3>Oblicz miesięczną ratę</h3>
|
|
||||||
<form id="formularz">
|
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="react" class="kontrolki" name="kurs" value="React.js">
|
|
||||||
<label for="react">Kurs React.js</label>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="javascript" class="kontrolki" name="kurs" value="JavaScript">
|
|
||||||
<label for="javascript">Kurs JavaScript</label>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label for="raty">Liczba rat: </label>
|
|
||||||
<input type="number" id="raty" class="kontrolki" name="raty" min="1">
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label for="miasto">Miasto: </label>
|
|
||||||
<select id="miasto" class="kontrolki" name="miasto">
|
|
||||||
<option value="Warszawa">Warszawa</option>
|
|
||||||
<option value="Katowice">Katowice</option>
|
|
||||||
<option value="Gdańsk">Gdańsk</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<button type="button" id="oblicz" class="kontrolki">Oblicz</button>
|
|
||||||
</form>
|
|
||||||
<p id="wynik"></p>
|
|
||||||
</main>
|
|
||||||
<footer>
|
|
||||||
<p>Autor strony: 99010101010</p>
|
|
||||||
</footer>
|
|
||||||
<script src="js/script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
9
script.js
Normal file
9
script.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
document.addEventListener('DOMContentLoaded', async() => {
|
||||||
|
const res = await fetch('get.php');
|
||||||
|
const data = await res.json();
|
||||||
|
|
||||||
|
const t = document.getElementById('tab');
|
||||||
|
t.innerHTML = t.rows[0]?.outerHTML + data.map(r =>
|
||||||
|
`<tr><td>${r.nazwa}</td><td>${r.czas_trwania}</td><td>${r.cena}</td></tr>`
|
||||||
|
).join("");
|
||||||
|
})
|
||||||
@ -1 +0,0 @@
|
|||||||
SELECT REPLACE(k.nazwa, 'Kurs ', '') AS kurs, k.czas_trwania AS czas_trwania, CONCAT(k.cena, ' zł') AS cena FROM kursy k ORDER BY k.id
|
|
||||||
51
sql/s1.sql
51
sql/s1.sql
@ -1,51 +0,0 @@
|
|||||||
-- Utwórz bazę danych dla firmy szkoleniowej
|
|
||||||
CREATE DATABASE IF NOT EXISTS szkolenia CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
|
||||||
|
|
||||||
-- Wybierz bazę danych do pracy
|
|
||||||
USE szkolenia;
|
|
||||||
|
|
||||||
-- Tabela: kategorie_kursow
|
|
||||||
-- Przechowuje informacje o poziomach kursów (np. podstawowy, średni, zaawansowany)
|
|
||||||
CREATE TABLE IF NOT EXISTS kategorie_kursow (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(50) NOT NULL UNIQUE,
|
|
||||||
opis TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli kategorii
|
|
||||||
INSERT INTO kategorie_kursow (nazwa, opis) VALUES
|
|
||||||
('podstawowy', 'Kurs przeznaczony dla początkujących'),
|
|
||||||
('średni', 'Kurs dla osób mających podstawową wiedzę'),
|
|
||||||
('zaawansowany', 'Kurs dla osób posiadających zaawansowaną wiedzę');
|
|
||||||
|
|
||||||
-- Tabela: kursy
|
|
||||||
-- Przechowuje informacje o konkretnych kursach
|
|
||||||
CREATE TABLE IF NOT EXISTS kursy (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(255) NOT NULL,
|
|
||||||
cena DECIMAL(10, 2) NOT NULL,
|
|
||||||
id_kategorii INT,
|
|
||||||
FOREIGN KEY (id_kategorii) REFERENCES kategorie_kursow(id),
|
|
||||||
UNIQUE KEY unique_nazwa (nazwa)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli kursy (zgodnie z ilustracją 4)
|
|
||||||
INSERT INTO kursy (nazwa, cena, id_kategorii) VALUES
|
|
||||||
('Kurs HTML i CSS', 500.00, 1), -- podstawowy
|
|
||||||
('Kurs JavaScript', 700.00, 2), -- średni
|
|
||||||
('Kurs React.js', 900.00, 3); -- zaawansowany
|
|
||||||
|
|
||||||
-- Tabela: miasta
|
|
||||||
-- Przechowuje listę miast, w których odbywają się kursy
|
|
||||||
CREATE TABLE IF NOT EXISTS miasta (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(100) NOT NULL UNIQUE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli miasta
|
|
||||||
INSERT INTO miasta (nazwa) VALUES
|
|
||||||
('Warszawa'),
|
|
||||||
('Katowice'),
|
|
||||||
('Gdańsk');
|
|
||||||
|
|
||||||
|
|
||||||
10
sql/s2.sql
10
sql/s2.sql
@ -1,10 +0,0 @@
|
|||||||
-- Zapytanie 3: Tworzenie użytkownika 'Marek'
|
|
||||||
CREATE USER IF NOT EXISTS 'Marek'@'localhost' IDENTIFIED BY 'M@reK';
|
|
||||||
|
|
||||||
-- Zapytanie 4: Nadanie uprawnień
|
|
||||||
-- Użytkownik Marek ma prawo do przeglądania i aktualizowania danych tylko w tabeli `kursy`
|
|
||||||
GRANT SELECT, UPDATE ON szkolenia.kursy TO 'Marek'@'localhost';
|
|
||||||
|
|
||||||
-- Odświeżenie uprawnień
|
|
||||||
FLUSH PRIVILEGES;
|
|
||||||
|
|
||||||
63
sql/s3.sql
63
sql/s3.sql
@ -1,63 +0,0 @@
|
|||||||
-- Utwórz bazę danych dla firmy szkoleniowej
|
|
||||||
CREATE DATABASE IF NOT EXISTS szkolenia CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
|
||||||
|
|
||||||
-- Wybierz bazę danych do pracy
|
|
||||||
USE szkolenia;
|
|
||||||
|
|
||||||
-- Tabela: kategorie_kursow
|
|
||||||
CREATE TABLE IF NOT EXISTS kategorie_kursow (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(50) NOT NULL UNIQUE,
|
|
||||||
opis TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli kategorii
|
|
||||||
INSERT INTO kategorie_kursow (nazwa, opis) VALUES
|
|
||||||
('podstawowy', 'Kurs przeznaczony dla początkujących'),
|
|
||||||
('średni', 'Kurs dla osób mających podstawową wiedzę'),
|
|
||||||
('zaawansowany', 'Kurs dla osób posiadających zaawansowaną wiedzę');
|
|
||||||
|
|
||||||
-- Tabela: kursy (z dodanym czasem trwania)
|
|
||||||
CREATE TABLE IF NOT EXISTS kursy (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(255) NOT NULL,
|
|
||||||
cena DECIMAL(10, 2) NOT NULL,
|
|
||||||
czas_trwania VARCHAR(50) NOT NULL DEFAULT '2 miesiące',
|
|
||||||
id_kategorii INT,
|
|
||||||
FOREIGN KEY (id_kategorii) REFERENCES kategorie_kursow(id),
|
|
||||||
UNIQUE KEY unique_nazwa (nazwa)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli kursy z czasem trwania
|
|
||||||
INSERT INTO kursy (nazwa, cena, czas_trwania, id_kategorii) VALUES
|
|
||||||
('Kurs HTML i CSS', 500.00, '2 miesiące', 1),
|
|
||||||
('Kurs JavaScript', 700.00, '3 miesiące', 2),
|
|
||||||
('Kurs React.js', 900.00, '4 miesiące', 3);
|
|
||||||
|
|
||||||
-- Tabela: miasta
|
|
||||||
CREATE TABLE IF NOT EXISTS miasta (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nazwa VARCHAR(100) NOT NULL UNIQUE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Wstaw dane do tabeli miasta
|
|
||||||
INSERT INTO miasta (nazwa) VALUES
|
|
||||||
('Warszawa'),
|
|
||||||
('Katowice'),
|
|
||||||
('Gdańsk');
|
|
||||||
|
|
||||||
-- Tabela: kursy_miasta (relacja wiele-do-wielu: kurs może być w wielu miastach)
|
|
||||||
CREATE TABLE IF NOT EXISTS kursy_miasta (
|
|
||||||
id_kursu INT NOT NULL,
|
|
||||||
id_miasta INT NOT NULL,
|
|
||||||
PRIMARY KEY (id_kursu, id_miasta),
|
|
||||||
FOREIGN KEY (id_kursu) REFERENCES kursy(id) ON DELETE CASCADE,
|
|
||||||
FOREIGN KEY (id_miasta) REFERENCES miasta(id) ON DELETE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Przykładowe przypisanie kursów do miast (każdy kurs w każdym mieście)
|
|
||||||
INSERT INTO kursy_miasta (id_kursu, id_miasta)
|
|
||||||
SELECT k.id, m.id
|
|
||||||
FROM kursy k
|
|
||||||
CROSS JOIN miasta m;
|
|
||||||
|
|
||||||
@ -47,11 +47,6 @@ nav a:hover {
|
|||||||
border: 1px solid #EAEAEA;
|
border: 1px solid #EAEAEA;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
|
||||||
margin-left: 40px;
|
|
||||||
list-style-type: circle;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border: 1px dashed #625B5B;
|
border: 1px dashed #625B5B;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
@ -59,10 +54,6 @@ table {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.kontrolki {
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
main {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user