Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Tutorial PHP/MySQL

Wyświetlanie informacji

Do tej pory stworzyłeś bazę danych i umieściłeś w niej dane. W tej części w jaki sposób stworzyć formularz wprowadzania danych oraz w jaki sposób obejrzeć zawartość całej bazy.

Formularz HTML

Umieszczanie danych za pomocą formularzy HTML jest niemal identyczne jak przy wykorzystaniu skryptów PHP. Korzyścią jest brak konieczności zmieniania części skryptu dla każdej danej wymaganej do dodania oraz możliwość pozwolenia użytkownikom na wprowadzanie swoich własnych danych..

Następujący kod stworzy stronę HTML z polami typu textbox celem wprowadzenia żądanych danych:

<form action="insert.php" method="post">
Pierwsze imię: <input type="text" name="first"><br>
Drugie imię: <input type="text" name="last"><br>
Telefon stacjonarny: <input type="text" name="phone"><br>
Telefon komórkowy: <input type="text" name="mobile"><br>
Fax: <input type="text" name="fax"><br>
E-mail: <input type="text" name="email"><br>
strona WWW: <input type="text" name="web"><br>
<input type="submit" value="Wyślij">
</form>

Oczywiście można w/w kod jeszcze przeformatować i rozwinąć. Jest to tylko najprostszy przykład formularza na początek. Później będziesz musiał edytować ten skrypt i użyć własności celem dodania do bazy danych:

<?
$username="nazwa użytkownika bazy danych";
$password="hasło do bazy danych";
$database="nazwa bazy danych";

$first=$_POST['first'];
$last=$_POST['last'];
$phone=$_POST['phone'];
$mobile=$_POST['mobile'];
$fax=$_POST['fax'];
$email=$_POST['email'];
$web=$_POST['web'];

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Nie znaleziono bazy danych");

$query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')";
mysql_query($query);

mysql_close();
?>

Ten skrypt powinien zostać zachowany pod nazwą insert.php aby mógł zostać wywołany poprzez formularz HTML Działa to na zasadzie: dane wprowadzane, są przekazywane do odpowiednich pół formularza a dalej przypisywane do odpowiednich zmiennych i wartości w skrypcie php który umieszcza je w bazie danych.

Możesz również dodać wiadomość potwierdzającą lub informująca o niepowodzeniu dodawania wpisów do bazy danych. Uzyskasz to za pomocą czystego PHP.

Wyświetlanie danych

W ten oto sposób masz już pierwszy rekord w bazie danych lub wiele więcej. Po pewnym czasie zaczniesz zastanawiać się w jaki sposób mógłbyś je wygodnie obejrzeć za pomocą PHP. Zanim zaczniesz powinieneś zapoznać się z sposobem realizacji pętli w PHP celem wyświetlania danych.

Pierwszą komendą potrzebną do wykonania jest:

SELECT * FROM contacts

jest to podstawowa komenda MySQL mówiąca skryptowi iż ma pobrać wszystkie dostępne rekordy z tabeli contacts. Ponieważ nastąpi zwrócenie danych muszą one zostać powiązane z odpowiednimi wartościami:

$query="SELECT * FROM contacts";
$result=mysql_query($query);

W tym wypadku cała zawartość bazy danych została zawarta w $result. Zanim będziesz w stanie wyświetlić dane będziesz musiał zmienić każdą porcję w osobną wartość. Proces ten realizuje się w dwóch krokach.

Zliczanie wierszy

Zanim będziesz w stanie przypisać dane, musisz wiedzieć ile wierszy zawiera baza. Można oczywiście zapisać to w kodzie, lecz nie jest to dobrym rozwiązaniem gdyż skrypt będzie wielokrotnie zmieniany praktycznie za każdą zmiana liczby wierszy w bazie. Zamiast tego możesz skorzystać z polecenia:

$num=mysql_numrows($result);

Przypisze to wartość zmiennej $num do liczby wierszy przechowywanej w $result. Następnie może zostać to użyte przez pętle i w efekcie nastąpi wyświetlenie danych.

Konfiguracja pętli

Musisz ustawić pętle aby każdy wiersz rezultatu wyświetlić dane w nim zawarte. Używając utworzonego prędzej $num, możesz zapętlić wszystkie wiersze w bardzo prosty sposób. W poniższym kodzie $i jest ilością uruchomionych pętli i warunkuje zatrzymanie wykonywania pętli po osiągnięciu zadanej wartości gdy nie napotka się po drodze żadnych błędów.

$i=0;
while ($i < $num) {

CODE

$i++;
}

Jest to podstawowa pętla PHP. Wykona ona dokładnie taką ilość skoków jaką zadano jako parametr. Za każdym razem $i będzie większe dokładnie o 1 niż poprzednio. Jest to przydatne gdyż $i "mówi" skryptowi która linia rezultatu powinna zostać odczytana. Jako pierwsza linia w wyniku MySQL przyjmowana jest wartość 0 co gwarantuje poprawność działania pętli.

Przypisywanie danych do wartości

Ostatnim krokiem wyjściowego skryptu jest przypisanie kolejnych danych do odpowiadających im wartości. Następujący kod realizuje to zadanie:

$variable=mysql_result($result,$i,"fieldname");

Więc aby dodać każdą wartość do bazy danych musimy wywołać:

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

Nie trzeba pobierać pola ID gdyż nie używamy go w wyjściowym kodzie.

Gotowy skrypt

Możemy teraz napisać pełen skrypt w celu wyświetlenia rezultatu. Dane nie są formatowane:

<?
$username="nazwa użtkownika";
$password="chasło użytkownika";
$database="nazwa bazy danych";

mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("Nie odnaleziono bazy danych");
$query="SELECT * FROM contacts";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Struktura bazy danych</center></b><br><br>";

$i=0;
while ($i < $num) {

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

echo "<b>$first $last</b><br>telefon stacjonarny: $phone<br>Telefon komórkowy: $mobile<br>Fax: $fax<br>E-mail: $email<br>Strona WWW: $web<br><hr><br>";

$i++;
}

?>
Część 5

W części piątej pokażę w jaki sposób formatować dane wyjściowe i jak wybrać rożne dane z bazy danych.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (7)
gdzie link?
Piątek 15 Lipiec 2011 12:45:10 pm - beneglih

Fajny tutorial, tylko dlaczego na jego końcu jest informacja, że skrypt można pobrać, dwukropek i puste miejsce, brak linka...

ort
Sobota 13 Marzec 2010 10:02:17 pm - katwer <katwer_at_op.pl>

Co jak co, ale artykuł do druku na poważnym portalu, to już powinien przejść przez standardowe sprawdzanie pisowni choćby zautomatyzowane, jeśli autor nie wie, jak się pisze HASŁO.

Sorry, ale takie lekceważenie języka polskiego - musiałam.

pytanie
Niedziela 01 Lipiec 2007 8:56:38 pm - bercik156 <fifunia07_at_wp.pl>

mam pytanie jak zmienić w bazie danych język żeby na stronie były polskie znaki??

złeeee
Poniedziałek 07 Maj 2007 9:01:03 am - wbeatn <wbeatn_at_gmail.com>

dlaczego w tym artykule jest podany bledny kod ? strona z dodawaniem do bazy mi dziala, to samo jest ze strona ktora wyswietla rekordy, ale strona ktora ma wyswietlic formularz edytujacy wywala blad 'Warning: mysql_numrows(): supplied argument is not a valid MySQL ...' .. robie wszystko wedlug instrukcji i takie cos :/

Dłąd :D
Sobota 25 Listopad 2006 11:38:44 pm - sabistik <wiktorski_at_poczta.php.pl>

haha, Czemu nikt wcześniej tego nie zraportował:
http://irc.php.pl/blog/?id=392
?? ;D

Wyjaśnienie małe
Piątek 27 Październik 2006 9:26:17 pm - slump <slump_Ilawa_at_wp.pl>

Twoje sugestje są jak najbardziej trafne, jednak pamiętaj, że jest to tylko translacja arta z języka Angielskiego.
Pozdrawiam

Kilka luźnych uwag
Czwartek 26 Październik 2006 12:12:12 pm - Diabl0

Rozumiem że jest to art dla totalnie początkujących i przeglądałem go bardzo pobieżnie, ale mimo wszystko mam kilka zastrzeżeń:

1 - instalowanie phpmyadmin na serwerze bez odpowiedniego zabezpieczenia go - kto się opiekuje serwerami niech spojrzy sobie w logi jak często trafiają się roboty szukające phpmyadmin - nie sądzę aby szukały one sobie tylko z czystej ciekawości. Trzeba było przynajmniej napisać jak go zabezpieczyć przez .htaccess

2 - SQL incjection - wstawianie danych pochodzących od usera prosto do bazy bez sprawdzenia i zabezpieczenia. Temat ten wszędzie jest tak często wałkowany że tutorial dla początkujących z takim błędem to duży imho duża porażka. Aż tak ciężko było poświęcić dwa akapity na wyjaśnienie zagrożenia i zaproponowanie chociażby mysql_escape_string?

3 - nie wiem skąd takie parcie na while ($i < $num) i każdorazowe przepisywanie danych? IMHO dużo wygodniejsze (zwłaszcza dla początkujących, a nie wiem też czy nie szybsze) jest while ($row = mysql_fetch_assoc($ret).

4 - drobiazg, ale: <? :) <?php jest bardziej prawidłowe zwłaszcza że już słyszałem jakieś pogłoski że <? ma zostać z czasem usunięte :)

5 - formatowanie kodu - ja rozumiem że system znaczników na php.pl może utrudniać zachowanie wcięć itp, ale skoro to jest tutorial dla początkujących to przydało by się też zadbać o uczenie ich dbałości o wygląd kodu i jego staranniejsze formatowanie - to naprawdę ułatwia w przyszłości życie a dzięki odrobiny praktyki stosuje się praktycznie odruchowo.

To takie moje drobne uwagi po pobieżnym przejrzeniu arta (głównie fragmentów kodu) . Nie jest to żadna miażdżąca krytyka - po prostu wychodzę z założenia że o ile w arcie dla doświadczonych programistów nawet nie było by sensu zwracać na to uwagi (w końcu każdy i tak ma już wyrobione własne nawyki i przyzwyczajenia), to jednak w arcie dla początkujących warto położyć większy nacisk na tego typu drobiazgi aby od początku wtłaczać i wyrabiać w nich dobre nawyki.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System