Współpraca PHP z MySql
Transkrypt
Współpraca PHP z MySql
Współpraca PHP z MySql 1. Wyświetlanie danych z bazy: show.php <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć się z bazą"); mysql_select_db("login") or die('Nie można wybrać bazy danych: ' . mysql_error()); if($link) echo "Połączono z bazą<br>"; $zapytanie="select * FROM studenci"; $wynik = mysql_query($zapytanie); ?> <p><b>W bazie są następujący studenci:</b></p> <table border="1" width="100%" class="danestudentow"> <tr> <td><b>ID</b></td> <td width="70"><b>Imię:</b> </td> <td width="70"><b>Imię drugie:</b> </td> <td width="90"><b>Nazwisko:</b> </td> <td width="80"><b>Data urodzenia:</b> </td> <td width="30"><b>Płeć:</b> </td> <td width="40"><b>Wiek:</b> </td> <td><b>Miasto_id:</b> </td> <td><b>Kierunek_id:</b> </td></tr> <?PHP while ($line = mysql_fetch_array($wynik)) { echo "<tr> <td align=\"center\">".$line['id']."</td> <td align=\"left\">".$line['imie']."</td> <td align=\"left\">". $line['imie_drugie']."</td> <td align=\"left\">".$line['nazwisko']."</td> <td align=\"center\">".$line['data_ur']."</td> <td align=\"center\">".$line['plec']."</td> <td align=\"center\">".$line['wiek']."</td> <td align=\"center\">". $line['miasto_id']."</td> <td align=\"center\">". $line['kierunek_id']."</td> </tr>"; } ?> </table> 2. Usuwanie danych z tabeli <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć się z bazą"); mysql_select_db("baza") or die('Nie można wybrać bazy danych: ' . mysql_error()); ?> <?PHP if(isset($_GET["student"])) { $usun = "delete from studenci where id=".$_GET["student"].""; if(mysql_query($usun)){ echo "Usunięto studenta o id: "."<b>". $_GET["student"]."</b>"; } } ?> <?PHP $zapytanie="select * FROM studenci"; $wynik = mysql_query($zapytanie); ?> <table border="1" width="100%"> <tr> <td><b>ID</b> </td> <td width="110"><b>Imię:</b> </td> <td width="110"><b>Imię drugie:</b> </td> <td width="130"><b>Nazwisko:</b> </td> <td><b>Data urodzenia:</b> </td> <td><b>Płeć:</b> </td> <td>Usuń:</td> </tr> <?PHP while ($line = mysql_fetch_array($wynik)) { echo "<tr> <td align=\"center\">".$line['id']."</td> <td align=\"left\">".$line['imie']."</td> <td align=\"left\">". $line['imie_drugie']."</td> <td align=\"left\">".$line['nazwisko']."</td> <td align=\"center\">".$line['data_ur']."</td> <td align=\"center\">".$line['plec']."</td> <td align=\"center\"><a href=\"index.php? id=5&student=".$line['id']."\">Usuń</a></td> </tr>"; } ?> </table> 3. Dodawanie danych do bazy (add.php i addaction.php) add.php <form action="addaction.php" method="POST"> <table> <tr><td width="120"><b>Imię:</b> </td><td width="200"><input type= "text" name="imie" /></td></tr> <tr><td width="120"><b>Imię drugie:</b> </td><td width="200"><inpu t type="text" name="imie_drugie" /></td></tr> <tr><td width="120"><b>Nazwisko:</b> </td><td width="200"><input t ype="text" name="nazwisko" /></td></tr> <tr><td width="120"><b>Data urodzenia:</b> </td><td width="200"><i nput type="text" name="data_ur" /></td></tr> <tr><td width="120"><b>Płeć:</b> </td><td width="200"><input type= "text" name="plec" /></td></tr> <tr><td width="120"><b>Wiek:</b> </td><td width="200"><input type= "text" name="wiek" /></td></tr> <tr><td width="120"><b>Miasto_id:</b> </td><td width="200"><input type="text" name="miasto_id" /></td></tr> <tr><td width="120"><b>Kierunek_id:</b> </td><td width="200"><inpu t type="text" name="kierunek_id" /></td></tr> <tr><td></td><td><input type="submit" value="Dodaj osobę" /></td>< /tr> </table> </form> addaction.php <p><b>Następująca osoba zostanie dodana do bazy:</b></p> <table border="1"> <tr><td width="120"><b>Imię:</b> </td><td width="200"><? echo $_PO ST["imie"];?></td></tr> <tr><td width="120"><b>Imię drugie:</b> </td><td width="200"><? ec ho $_POST["imie_drugie"];?></td></tr> <tr><td width="120"><b>Nazwisko:</b> </td><td width="200"><? echo $_POST["nazwisko"];?></td></tr> <tr><td width="120"><b>Data urodzenia:</b> </td><td width="200"><? echo $_POST["data_ur"];?> </td></tr> <tr><td width="120"><b>Płeć:</b> </td><td width="200"><? echo $_PO ST["plec"];?></td></tr> <tr><td width="120"><b>Wiek:</b> </td><td width="200"><? echo $_PO ST["wiek"];?></td></tr> <tr><td width="120"><b>Miasto_id:</b> </td><td width="200"><? echo $_POST["miasto_id"];?></td></tr> <tr><td width="120"><b>Kiierunek_id:</b> </td><td width="200"><? e cho $_POST["kierunek_id"];?></td></tr> </table> <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć się z bazą"); mysql_select_db("login") or die('Nie można wybrać bazy danych: ' . mysql_error()); if($link) echo "Połączono z bazą"; ?> <?PHP $zapytanie = "INSERT INTO studenci(imie,imie_drugie,nazwisko,da ta_ur,plec,wiek,miasto_id,kierunek_id) VALUES( '".$_POST["imie"]."', '".$_POST["imie_drugie"]."', '".$_POST["nazwisko"]."', '".$_POST["data_ur"]."', '".$_POST["plec"]."', ".$_POST["wiek"].", ".$_POST["miasto_id"].", ".$_POST["kierunek_id"].")"; echo "<pre>$zapytanie</pre>"; $wynik = mysql_query($zapytanie); if($wynik) { echo "Dane zostały zapisane.<br>"; } else { echo "Dane nie zostały zapisane.<br>"; } ?> Zadanie 1. 1. Poprawić plik show.php, aby zamiast miasto_id, kierunek_id (tzn. liczb) pojawiały się konkretne nazwy miast i kierunków. 2. Dodać walidację w formularzu przyjmującym dane studenta (sprawdzić czy odpowiednie dane, np. imię, nazwisko, data urodzenia, wiek, płeć zostały na pewno wpisane w polu formularza) 5. Edycja danych w bazie za pomocą PHP (edit.php i editaction.php) edit.php <h2>Edytuj studenta</h2> <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć się z bazą"); mysql_select_db("login") or die('Nie można wybrać bazy danych: ' . mysql_error()); ?> <?PHP if(isset($_GET["student"])) { $zapytanie = "SELECT * FROM studenci where id=".$_GET["student"].""; echo $zapytanie; $wyniki = mysql_query($zapytanie); if (!mysql_numrows($wyniki)) { echo '<b>Brak takiego studenta</b>.'; exit; } $wiersz = mysql_fetch_assoc($wyniki); echo ' <form action="index.php?id=401" method="POST"> <input type="hidden" name="id" value="'.$_GET['student'].'"/> <table border="1"> <tr><td width="120"><b>Imię:</b> </td><td width="200"><input t ype="text" name="imie" value="'.$wiersz['imie'].'" /></td></tr> <tr><td width="120"><b>Imię drugie:</b> </td><td width="200">< input type="text" name="imie_drugie" value="'. $wiersz['imie_drugie'].'" /></td></tr> <tr><td width="120"><b>Nazwisko:</b> </td><td width="200"><inp ut type="text" name="nazwisko" value="'.$wiersz['nazwisko'].'" /> </td></tr> <tr><td width="120"><b>Data urodzenia:</b> </td><td width="200 "><input type="text" name="data_ur" value="'.$wiersz['data_ur'].'" /></td></tr> <tr><td width="120"><b>Płeć:</b> </td><td width="200"><input t ype="text" name="plec" value="'.$wiersz['plec'].'" /></td></tr> <tr><td width="120"><b>Wiek:</b> </td><td width="200"><input t ype="text" name="wiek" value="'.$wiersz['wiek'].'" /></td></tr> <tr><td width="120"><b>Miasto_id:</b> </td><td width="200"><in put type="text" name="miasto_id" value="'.$wiersz['miasto_id'].'" /></td></tr> <tr><td width="120"><b>Kierunek_id:</b> </td><td width="200">< input type="text" name="kierunek_id" value="'. $wiersz['kierunek_id'].'" /></td></tr> <tr><td></td><td><input type="submit" name="wyslij" value="Zmi eń dane" /></td></tr> </table> </form> '; die(); } ?> <?PHP $zapytanie="select * FROM studenci"; $wynik = mysql_query($zapytanie); ?> <table border="1" width="100%"> <tr> <td><b>ID</b> </td> <td width="110"><b>Imię:</b> </td> <td width="110"><b>Imię drugie:</b> </td> <td width="130"><b>Nazwisko:</b> </td> <td><b>Data urodzenia:</b> </td> <td><b>Płeć:</b> </td> <td><b>Edytuj:</b></td> </tr> <?PHP while ($line = mysql_fetch_array($wynik)) { echo "<tr> <td align=\"center\">".$line['id']."</td> <td align=\"left\">".$line['imie']."</td> <td align=\"left\">". $line['imie_drugie']."</td> <td align=\"left\">".$line['nazwisko']."</td> <td align=\"center\">".$line['data_ur']."</td> <td align=\"center\">".$line['plec']."</td> <td align=\"center\"><a href=\"index.php? id=4&student=".$line['id']."\">Edytuj</a></td> </tr>"; } ?> </table> editaction.php <h2>Edytuj studenta</h2> <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć się z bazą"); mysql_select_db("login") or die('Nie można wybrać bazy danych: ' . mysql_error()); ?> <?PHP if(isset($_POST['wyslij'])) { $zapytanie = "UPDATE studenci SET imie = '".$_POST["imie"]."', imie_drugie = '".$_POST["imie_drugie"]."', nazwisko = '".$_POST["nazwisko"]."', data_ur = '".$_POST["data_ur"]."', plec = '".$_POST["plec"]."', wiek = ".$_POST["wiek"].", miasto_id = ".$_POST["miasto_id"].", kierunek_id = ".$_POST["kierunek_id"]." WHERE id=".$_POST["id"].""; echo "<pre>$zapytanie</pre>"; $wynik = mysql_query($zapytanie); if($wynik) { echo "<b>Dane zostały zapisane.</b><br>"; } else { echo "<b>Dane nie zostały zapisane.</b><br>"; } } ?> Zadanie 2. 1. Dopisać pliki odpowiadające za dodawanie nowych nazw miast i kierunków studiów (analogicznie jak dodawanie studentów) i dołączyć do strony. 2. Dopisać pliki odpowiadające za wyświetlanie nazw miast i kierunków studiów (analogicznie jak wyświetlanie studentów) i dołączyć do strony. 3. Dopisać pliki odpowiadające za edycję nazw miast i kierunków studiów (analogicznie jak edycję studentów) i dołączyć do strony. 6. Przeszukiwanie bazy z poziomu PHP <?PHP $link = mysql_connect("localhost", "login", "haslo") or die ("Nie można połączyć sięz bazą"); mysql_select_db("login") or die('Nie można wybraćbazy danych: ' . mysql_error()); ?> <h2>Szukaj</h2> <form action="index.php?id=6" method="POST"> <table border="1" width="300"> <tr><td><b>Nazwisko:</b></td><td><input name="sz_nazwisko" /></td> </tr> <tr><td><b>Płeć:</b></td><td><input name="sz_plec" /></td></tr> <tr><td><b>Kierunek:</b></td><td><input name="sz_kierunek" /></td> </tr> <tr><td></td><td><input type="submit" value="Szukaj" name="szukaj" /></td></tr> </table> </form> <br><br> <?PHP if(isset($_POST["szukaj"])) { $zapytanie="select s.*,m.nazwa as mnazwa, k.nazwa as knazwa FROM studenci s, miasto m, kierunek k "; $where = "WHERE s.miasto_id=m.id and s.kierunek_id=k.id"; if(!empty($_POST["sz_nazwisko"])){ $where.= " and s.nazwisko LIKE '%". $_POST["sz_nazwisko"]."%'"; } if(!empty($_POST["sz_plec"])){ $where.= " and s.plec ='".$_POST["sz_plec"]."'"; } if(!empty($_POST["sz_kierunek"])){ $where.= " and k.nazwa LIKE '%". $_POST["sz_kierunek"]."%'"; } $zapytanie.=$where; $wynik = mysql_query($zapytanie); echo "<pre>".$zapytanie."</pre>"; echo '<p><b>Oto lista szukanych studentów:</b></p>'; echo ' <table border="1" class="danestudentow" width="100%"> <tr> <td><b>ID</b></td> <td width="70"><b>Imię:</b> </td> <td width="70"><b>Imię drugie:</b> </td> <td width="90"><b>Nazwisko:</b> </td> <td width="80"><b>Data urodzenia:</b> </td> <td width="30"><b>Płeć:</b> </td> <td width="40"><b>Wiek:</b> </td> <td><b>Miasto:</b> </td> <td><b>Kierunek:</b> </td></tr>'; while ($line = mysql_fetch_array($wynik)) { echo "<tr> <td align=\"center\">".$line['id']."</td> <td align=\"left\">".$line['imie']."</td> <td align=\"left\">". $line['imie_drugie']."</td> <td align=\"left\">".$line['nazwisko']."</td> <td align=\"center\">".$line['data_ur']."</td> <td align=\"center\">".$line['plec']."</td> <td align=\"center\">".$line['wiek']."</td> <td align=\"center\">".$line['mnazwa']."</td> <td align=\"center\">".$line['knazwa']."</td> </tr>"; } echo '</table>'; } ?> Zadanie 3. Poprawić wyszukiwarkę tak, aby można było wyszukiwać po wszystkich polach.