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