PHP + MySQL w laboratorium (1)

advertisement
PHP + MySQL w laboratorium (1)
W czasie użytkowania systemu musi działać serwer MySQL, Apache i być dostępna przeglądarka
internetowa.
Zadanie 1
-
Umieścić wydrukowany poniżej skrypt info.php w kartotece „roboczej” WWW pakietu Vertrigo
– w laboratorium:
C:\programy\VertrigoServ\WWW
-
Stwierdzić poprawność działania PHP uruchamiając w przeglądarce skrypt wydrukowany poniżej, a
umieszczony na stronie: http://localhost/info.php
<?php phpinfo(); ?>
Uwagi:
- wszystkie własne skrypty php proszę umieszczać w kartotece „roboczej” WWW pakietu Vertrigo
– w laboratorium:
- C:\programy\VertrigoServ\WWW
- zbadać składnię wywołania PHP <?php ...... ?>, itp.
Zadanie 2
Przeanalizować działanie, uruchomić skrypt nawiązujący kontakt z systemem MySQL:
<?php
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Polaczenie nieudane");
if ($connection) { $msg = "Bravo!"; }
?>
<HTML>
<HEAD>
<TITLE>MySQL Connection</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
</BODY>
</HTML>
Uwagi:
- mysql_connect(”serwer”, ”użytkownik”, ”hasło”) – nawiązanie połączenia z bazą danych MySQL
- die – funkcja obsługi błędu, przerywa wykonywanie skryptu
-1-
Zadanie 3
Przeanalizować działanie, uruchomić skrypt pokazujący nazwy baz danych MySQL:
<?php
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Polaczenie nieudane");
$dbs = @mysql_list_dbs($connection)
or die("Uzyskanie listy baz danych bledne");
$db_list = "<ul>";
$i = 0;
while ($i < mysql_num_rows($dbs))
{
$db_names[$i] = mysql_tablename($dbs, $i);
$db_list .= "<li>$db_names[$i]";
$i++;
}
$db_list .= "</ul>";
?>
<HTML>
<HEAD>
<TITLE>MySQL Bazy Danych</TITLE>
</HEAD>
<BODY>
<P><strong>Bazy danych na lokalnych hoscie</strong>:</p>
<?php echo "$db_list"; ?>
</BODY>
</HTML>
Uwagi:
- mysql_list_dbs() – podaje listę baz danych dostępnych na serwerze;
- mysql_tablename() – wyodrębnienie nazwy tabeli lub bazy danych,
- mysql_num_rows() – liczba wierszy w zbiorze wyników
-2-
Zadanie 4
Na podstawie poniższego skryptu przygotować skrypt prezentujący tabele bazy / baz danych
utworzonych przez Panią / Pana
<?php
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Proba polaczenia bledna");
$dbs = @mysql_list_dbs($connection)
or die("Uzyskanie listy baz danych bledne");
$db_list = "<ul>";
$db_num = 0;
while ($db_num < mysql_num_rows($dbs))
{
$db_names[$db_num] = mysql_tablename($dbs, $db_num);
$db_list .= "<li>$db_names[$db_num]";
if ($db_names[$db_num] != "mysql")
{
$tables = @mysql_list_tables($db_names[$db_num])
or die("Uzyskanie listy baz danych bledne");
$table_list = "<ul>";
$table_num = 0;
while ($table_num < mysql_num_rows($tables))
{
$table_names[$table_num] = mysql_tablename($tables, $table_num);
$table_list .= "<li>$table_names[$table_num]";
$table_num++;
}
$table_list .= "</ul>";
$db_list .= "$table_list";
}
$db_num++;
}
$db_list .= "</ul>";
?>
<HTML>
<HEAD>
<TITLE>MySQL Tables</TITLE>
</HEAD>
<BODY>
<P><strong>Bazy danych i tablele na lokalym hoscie</strong>:</P>
<?php echo "$db_list"; ?>
</BODY>
</HTML>
Uwagi:
- mysql_list_tables() – podaje listę tabel danej bazy,
- mysql_select_db(nazwa_bazy, identyfikator_połączenia)- wybór określonej bazy
-3-
Zadanie 5
Na podstawie poniższego skryptu przygotować skrypt zakładający nową bazę danych
<?php
$new_db = "testtest";
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Brak polaczenia");
$result = @mysql_create_db($new_db, $connection)
or die("Nie udalo sie utowrzyc bazy");
if ($result)
{
$msg = "<P>Baza danych utworzona!</P>";
}
?>
<HTML>
<HEAD>
<TITLE>Tworzenie nowej bazy danych</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
</BODY>
</HTML>
Uwagi:
- mysql_create_db () – tworzenie nowej bazy danych.
Zadanie 6
Na podstawie poniższego skryptu przygotować skrypt kasujący bazę danych
<?php
$drop_db = "testtest";
$connection = @mysql_connect("localhost", "user", "pass")
or die("Brak polaczenia");
$result = @mysql_drop_db($drop_db, $connection)
or die("Nie udalo sie skasowac bazy");
if ($result)
{
$msg = "<P>Baza danych skasowana</P>";
}
?>
<HTML>
<HEAD>
<TITLE>Kasowanie bazy danych</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
</BODY>
</HTML>
Uwagi:
- mysql_drop_db() – kasowanie bazy danych.
-4-
Zadanie 7
Na podstawie poniższego skryptu przygotować skrypty wybierające rekordy z Pani / Pana bazy danych:
- przygotowanie menu:
<HTML>
<HEAD>
<TITLE>Moje Menu</TITLE>
</HEAD>
<BODY>
<H1>Menu</H1>
<P><strong>Moje wybory</strong></P>
<ul>
<li><a href="sel_1.php">wedlug jeden</a>
<li><a href="sel_2.php">wedlug dwa</a>
<li><a href="sel_3.php">wedlug trzy</a>
<li><a href="sel_4.php">wedlug cztery</a>
</ul>
</BODY>
</HTML>
- właściwy przykładowy skrypt:
<?php
$db_name = "piesio";
$table_name = "ksiazki";
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Brak polaczenia");
$db = @mysql_select_db($db_name, $connection)
or die("Wybor nieudany");
$sql = "SELECT *
FROM $table_name
ORDER BY cena
";
$result = @mysql_query($sql, $connection)
or die("Zapytanie nieudane");
while ($row = mysql_fetch_array($result))
{
$isbn = $row['isbn'];
$autor = $row['autor'];
$tytul = $row['tytul'];
$cena = $row['cena'];
$display_block .= " <P><strong>$autor</strong> - $tytul<br>
<em>ISBN: $isbn</em> Cena: $cena</P>
";
}
?>
<HTML>
<HEAD>
<TITLE>Wybor jeden</TITLE>
</HEAD>
<BODY>
<H1>Jeden</H1>
<?php echo "$display_block"; ?>
<P><a href="menu.htm">Powrot do menu</a></P>
</BODY>
</HTML>
Uwagi:
- mysql_query () – przekazanie zapytania do MySQL,
- mysql_fetch_array() – przechwycenie do tablicy zawartości wiersza z wynikami zapytania
skierowanego do MySQL.
-5-
Zadanie 8
Na podstawie poniższego skryptu przygotować skrypty wprowadzające nowe rekordy do Pani / Pana bazy
danych:
- przygotowanie formularza:
<HTML>
<HEAD>
<TITLE>Dodawanie nowego rekordu</TITLE>
</HEAD>
<BODY>
<H1>Wstawianie rekordu</H1>
<FORM ACTION="wstaw.php" METHOD="POST">
<TABLE BORDER=0>
<tr><td>ISBN</td><td><input type=char name=isbn maxlength=13
size=13><br></td></tr>
<tr><td>Autor</td><td><input type=char name=autor maxlength=50
size=50><br></td></tr>
<tr><td>Tytul</td><td><input type=char name=tytul maxlength=60
size=60><br></td></tr>
<tr><td>Cena</td><td><input type=char name=cena maxlength=7
size=7><br></td></tr>
<tr><td colspan=2><input type=submit value="Dodaj"></td></tr>
</TABLE>
</FORM>
</BODY>
</HTML>
- właściwy skrypt:
<HTML>
<HEAD>
<TITLE>Efekt wstawiania nowego rekordu</TITLE>
</HEAD>
<BODY>
<H1>Rezultat wstawiania nowego rekordu</H1>
<?php
if ((!$isbn) || (!$autor) || (!$tytul) || (!$cena))
{
echo "Nie ma wszystkich danych<br>";
exit;
}
$connection = @mysql_connect("localhost", "root", "vertrigo")
or die("Brak lacznosci");
$db_name = "piesio";
mysql_select_db($db_name, $connection);
$sql = " insert into ksiazki values (\"$isbn\", \"$autor\",
\"$tytul\", \"$cena\") ";
$result = @mysql_query($sql, $connection)
or die("Zapytanie chybione");
if ($result)
{
echo mysql_affected_rows()." rekordow dopisanych";
}
?>
</BODY>
</HTML>
-6-
Related documents
Download