ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH

Transkrypt

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH
ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH
MySQL, PHP
Zad. 1
Dla każdego zamówienia wyznaczyć jego wartość. Należy podać numer zamówienia oraz wartość.
select z.id_zamowienia, sum(ilosc*cena) as wartosc
from Zamowienie z , Produkt p, Pozycje_Zamowienia pz
...
;
Zad. 2
Podaj imię i nazwisko klienta, który zamówił największą ilość różnych produktów.
select imie, nazwisko
from Klient k, Produkt p, Zamowienie z, Pozycje_Zamowienia pz
...
group by imie, nazwisko, k.id_klienta
having count(distinct pz.id_produktu)>=all ...
;
Zad. 3
Stworzyć formularz w HTML (zad3_inicjaly.html) zawierający trzy pola i jeden przycisk polecenia
(zgodnie z rysunkiem poniżej).
Zaawansowane bazy danych i hurtownie danych | PS4
<html>
<head>
<title>Prosty formularz HTML</title>
</head>
<body>
<form action="zad4_inicjaly.php" method=...>
<p><b>Nazwisko:</b><br/>
<input type="text" name="user"></p>
...
<p><b>Wiadomosc:</b><br/>
<textarea name="message" rows="5" cols="40"/></textarea></p>
<p><input type=... value="Wyslij"/></p>
</form>
</body>
</html>
<input type="text" name="nazwa_pola" value="wartość początkowa" size="rozmiar pola w znakach"
maxlength="maksymalny rozmiar pola">
<textarea name="nazwa" rows="liczba wierszy" cols="liczba kolumn"> </textarea>
http://dbserver.wi.pb.edu.pl/~user/strona.html
Zad. 4
Stworzyć skrypt php obsługujący przycisk polecenia z Zad. 3. Obsługa powinna się sprowadzić do
wyświetlenia wartości pól formularza z Zad. 3, tj. nazwiska, emaila oraz wiadomości.
<?php
echo "<p>Witaj <b>".$_POST["user"]."</b>!</p>";
... (wypisanie wiadomości i email)
?>
Zad. 5
Stworzyć formularz z listą wartości zgodnie z poniższym obrazkiem.
<html>
<head>
<title>Formularz HTML z lista wyboru</title>
</head>
<body>
<form action="zad6_inicjaly.php" method="POST">
<p><b>Nazwisko:</b><br/>
<input type="text" name="user"/></p>
<p><b>Wybierz produkt:</b><br/>
<select name="products[]" multiple="multiple">
<option value="Monitor">Monitor</option>
Zaawansowane bazy danych i hurtownie danych | PS4
...
</p>
<p><input type="submit" value="Wyslij"/></p>
</form>
</body>
</html>
Zad. 6
Stworzyć skrypt php obsługujący przycisk polecenia z Zad. 5. Obsługa powinna się sprowadzić do
wyświetlenia wartości pola Nazwisko oraz wartości zaznaczonych pól listy wyboru z Zad. 5.
<?php
echo "<p>Witaj <b>".$_POST["user"]."</b>!</p>";
echo "<p>Wybrales produkty:<br/>";
if (!empty($_POST["products"])) {
echo "<ul>";
foreach ($_POST["products"] as $value) {
echo "<li>$value</li>";
}
echo "</ul>";
}
?>
Zad. 7
Stworzyć formularz odpowiadający polom tabeli Klient (bez identyfikatora). Przycisk polecenia tego
formularza powinien uruchamiać skrypt php dodający rekord do tabeli Klient.
<html>
<head>
<title>Klient</title>
</head>
<body>
<form action="zad7_inicjaly.php" method="POST">
<p><b>Imie:</b><br/> <input type="text" name="imie"></p>
... (reszta opcji)
... (przycisk)
</form>
</body>
</html>
Zaawansowane bazy danych i hurtownie danych | PS4
-----------------------------------------------------------------------------------------------<?php
$polaczenie = mysql_connect("dbserver.wi.pb.edu.pl", ... , ...);
if (mysql_errno()) {
printf("Nastapil blad przy polaczeniu");
exit();
}
else
{
$sql = "INSERT INTO Klient(imie,nazwisko,email,ulica,miejscowosc,kod) VALUES
('".$_POST["imie"]."', '".$_POST["nazwisko"]."', '".$_POST["email"]."', '".$_POST["ulica"]."',
'".$_POST["miejscowosc"]."', '".$_POST["kod"]."')";
$baza = mysql_select_db("sklep", $polaczenie);
$wynik = mysql_query($sql, $polaczenie);
if ($wynik) { echo "Rekord zostal dodany."; }
else { printf("Rekord nie zostal dodany: %s\n", mysql_error($polaczenie)); }
mysql_close($polaczenie);
}
?>
mysql_connect
Zwracany jest identyfikator połączenia bądź FALSE.
mysql_errno
Zwraca numer błędu ostatnio wywołanej funkcji MySQL, lub Returns the error
number from the last MySQL function, or 0 (zero) jeśli żaden błąd nie wystąpił.
mysql_error
Zwraca tekst komunikatu błędu z ostatnio użytej funkcji MySQL, lub '' (pusty
łańcuch) jeśli wystąpi błąd.
exit
Wypisanie komunikatu i zakończenie działania skryptu
mysql_select_db
Ustawia aktywną bazę danych na serwerze określonym przez podany identyfikator
połączenia. Kolejne wywołania funkcji mysql_query() będą dotyczyły aktywnej
bazy danych. Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.
mysql_query
mysql_close
Wysyła zapytanie do aktywnej bazy na serwerze skojarzonym z podanym
identyfikatorem połączenia. Jeżeli identyfikator_połączenia nie został podany,
wykorzystywane jest ostatnio otwarte połączenie. Jeżeli żadne połączenie nie
jest otwarte, podjęta zostanie próba ustanowienia go, poprzez wywołanie bez
argumentów.
Zapytanie nie powinno kończyć się znakiem średnika.
Zamknięcie połączenia.
Zad. 8
Stworzyć formularz z przyciskiem polecenia, z którym związany będzie skrypt php wyświetlający z tabeli
Klient: imie, nazwisko oraz email poszczególnych klientów.
<html>
<head>
<title>Klient</title>
</head>
<body>
<form action="select_klient.php" method="POST">
<p><input type="submit" value="Wyswietl dane klientow"/></p>
</form>
</body>
</html>
-----------------------------------------------------------------------------------------------<?php
... (połączenie z bazą)
if (mysql_errno()) {
printf("Brak polaczenia: %s\n", mysql_error());
exit();
Zaawansowane bazy danych i hurtownie danych | PS4
} else {
echo "Jest polaczenie! <br>\n";
... (wybór bazy)
... (zapytanie)
$wynik = mysql_query($zapytanie, $polaczenie);
if ($wynik) {
while ($tablica = mysql_fetch_array($wynik, MYSQL_ASSOC)) {
$imie = $tablica['imie'];
$nazwisko = $tablica['nazwisko'];
$email = $tablica['email'];
echo "Klient: ".$imie." ".$nazwisko." ".$email."<br>\n";
}
} else {
printf("Dane nie zostaly zaladowane: %s\n", mysql_error($polaczenie));
}
mysql_free_result($wynik);
mysql_close($polaczenie);
}
?>
Zaawansowane bazy danych i hurtownie danych | PS4

Podobne dokumenty