Skocz do zawartości



MYSQL w języku PHP

php mysql podstawy poradnik pomoc phpmyadmin

  • Nie możesz odpowiedzieć
10 odpowiedzi w tym temacie

#1 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 10/12/2011 - 17:13

Witam.
Jest to mój pierwszy poradnik i mam nadzieje, że będzie przydatny.




1.Co jest nam potrzebne

Po pierwsze, dobry edytor php, lub zwykły notatnik. Następnie potrzebny nam serwer obsługujący php i mysql. Można również użyć xampp, czyli własnego serwera, jest on prosty w obsłudze. Xampp download : http://www.apachefri.../en/xampp.html.

2. Wprowadzenie

Oczywiście zaczynając mysql, powinniśmy znać podstawy php. Podstawy php : http://websitehelp.p...oczatkujacych/.
Mysql można wykorzystywać do wielu, rzeczy. Przede wszystkim do stworzenia systemu logowania, newsów. Oczywiście mysql jest dużo
wygodniejsze niż przechowywanie danych w plikach txt. Dobra, koniec gadania, zacznijmy praktyke.

3. Łączenie z serwerem mysql

mysql_connect('1','2','3') or Die(mysql_error);

O co w tym chodzi ? Już tłumacze.
Komenda mysql_connect, wywołuje połączenie z bazą mysql, potrzebuje ona 3 parametrów.
1. Nazwa serwera (w xampp localhost).
2. Login do serwera mysql (w xampp root).
3. Hasło do serwera mysql (w xampp brak).
Komenda "or Die" w razie błędu wyświetla "mysql_error" czyli przyczyna błędu.

Przykład :
mysql_connect('localhost','mylogin','myhaslo',) or Die(mysql_error);
Połączenie można zakończyć komendą
mysql_close();
Nie są w niej wymagane parametry.

4. Baza danych i zapytania.

Zapytania wykonujemy komendą
 mysql_query($query);
Komenda ta wywołuje zapytanie które jest w $query.
Przykład:
<?php
$query="SELECT 'cena' FROM 'produkty' WHERE 'produkt' = 'mleko'"
mysql_query($query);
echo $query;
?>
To tak, zapytanie te, wyciąga cenę produktu o nazwie mleko z tabeli o nazwie produkty.
Natomiast
mysql_query
wywołuje zapytanie, po czym
 echo $query; 
wyswietla cenę produktu.

Proste prawda ?. Teraz zajmiemy się tworzeniem bazy danych i tabeli. Można to robić poprzez skrypt php lub w panelu phpmyadmin.
Osobiście używam do tego phpmyadmin, ponieważ jest to owiele szybsze i łatwiejsze.

Na początku stwórzmy bazę danych o nazwie nauka.
mysql_create_db('nauka') or Die(mysql_error());
Następnie wybieramy naszą bazę komendą
mysql_select_db('nauka');
Od teraz nasze zapytania będą wykonywane na bazie "nauka".
Teraz stwórzmy tabelę o nazwie produkty, w której będą 2 kolumny Nazwa i Cena.
$query = "CREATE TABLE produkty(Produkt text,cena int,)";
mysql_query($query);


5. Podsumowanie, czyli mały skrypt.
Mamy już stworzoną bazę danych, którą następnie wybraliśmy. Stworzyliśmy tabelę na której będziemy wykonywali operacje. Teraz napiszemy skrypt który będzie dodawał produkt do bazy danych. Użyjemy tutaj prostego formularza php i poznanych nam komend mysql. Nasz skrypt będzie składał się z pliku dodaj.html, w którym będzie umieszczony nasz formularz z 2 polami i przycisku submit. Polacz.php, w którym będzie umieszczony kod, który połączy nas z serwerem mysql i bazą danych. Dodaj.php w którym produkt zostanie dodany do bazy mysql.
Zaczynajmy !
Najpierw tworzymy plik dodaj.html.
<form action="dodaj.php" method="post">
	<strong> Produkt:</strong> <input type="text" name="produkt"><br>
	<strong> Cena:</strong> <input type="text" name="cena"><br>
	<input type="submit" value="Dodaj">
</form>
Kod jest prosty i chyba dla każdego zrozumiały. Tworzymy 2 pola o nazwie produkt i cena oraz przycisk dodaj. Wszystko wysyłamy metodą POST.
Teraz plik polacz.php
<?php
mysql_connect('localhost','login','haslo') or Die(mysql_error);
mysql_select_db('nauka') or Die(mysql_error);
?>
Tutaj nasz skrypt łączy z bazą danych. Robimy to w osobnym pliku, żeby nie zaśmiecać kodu.
Teraz plik dodaj.php.
<?php
include('polacz.php'); // Załącza plik polacz.php.
$produkt=$_POST['produkt'];
$cena=$_POST['cena'];
$query="INSERT INTO 'produkty' (produkt,cena) VALUES ($produkt,$cena); ";
mysql_query($query) or Die(mysql_error);
echo 'Pomyślnie dodano produkt :';
echo $produkt;
?>
Tutaj, pobieramy wysłane dane z pliku dodaj.html, następnie dodaje je do bazy danych. Po pomyślnym dodaniu wyświetla nam tekst i nazwę produktu. Jest to prosty skrypt, z którym powinieneś sobie poradzić. Zadanie domowe dla chętnych : spróbuj zmodyfikować ten skrypt tak by przed dodaniem sprawdził czy dany produkt już istnieje. Nie jest to łatwe posiadając umiejętności po przeczytaniu mojego poradnika, tak więc polecam wam skorzystać z manuala częściowo po polsku.http://php.net/manual/pl/index.php. Mała podpowiedz :
Z bazy danych, informacje wyciągamy komendą : SELECT 'produkt' FROM 'produkty' WHERE 'produkt' = $produkt.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Poprawki :
1. Błąd dotyczący mysql_error lecz mysql_error() jest to znaczący błąd który popełniłem, ponieważ pierwsza wersja wyświetli nam błąd, przez złą komendę.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Część Druga

1. Wprowadzenie
W tej części zajmiemy się pogłębianiem naszej wiedzy na temat mysql/php. Po przeczytanie częsci pierwszej powinniście umieć tworzyć własną bazę danych i umieszczać do niej dane. Teraz nauczymy się usuwać rekordy, modyfikować je i zliczać. I dodam coś dodatkowego odbiegającego od mysql, bardziej związane z PHP, jest to data i czas . Więc do dzieła !

2. Usuwanie rekordów.

Rekordy można dodawać jak i usuwać. Usuwamy je za pomocą komendy DELETE.
$query="DELETE FROM news WHERE id='$id'";
                mysql_query($query) or Die(mysql_error());


Myślę, że jest to proste. Skrypt usuwa rekord z tabeli "news" gdzie id jest równe zmiennej $id.

3. Modyfikacja rekordów.
Rekordy modyfikujemy komendą UPDATE.
query="UPDATE news SET tresc='$tresc',tytul='$tytul' WHERE id='$id'";
        mysql_query($query) or Die(mysql_error().exit);


Skrypt zmienia treść i tytuł w tabeli "news" gdzie id jest równe zmiennej $id. Ponadto pojawiła nam się nowa, rzecz przy mysql_error "exit". Powoduje ona, że w przypadku błędu, wyświetli nam błąd i zatrzyma skrypt.

4. Liczenie rekordów.
Teraz zajmiemy się liczeniem rekordów. Jest to przydatne podczas systemu rejestracji, ponieważ można zliczyć ilość zarejestrowanych użytkowników, dlatego właśnie takim przykładem pokaże wam jak to wygląda.

$query=mysql_query("SELECT login FROM users");
    $query=mysql_num_rows($query);
    echo'Mamy juz '.$query.'&nbsp zarejestrowanych uzytkownikow';

Zapytanie wybierze nam wszystkie zapisy z kolumny login i z tabeli users. Następnie mysql_num_rows(); wyliczy nam ilość zapisów w tej kolumnie,
a echo wypisze nam ilość zarejestrowanych użytkowników. Proste prawda, a czasami bardzo przydatne. Można również wykorzystać do systemu rejestracji, podczas sprawdzania czy dany użytkownik istnieje !.

5. Data i czas.
Datę wyświetlamy komendą
date('d-m-Y')
Data wyświetli nam się w formacie Dzień-Miesiąc-Rok. Można oczywiście zmienić kolejność. Czas możemy wyświetlić tą samą komendą, lecz z innymi parametrami.
date("H:i:s")
Czas wyświetli nam się w formacie Godzina:Minuta:Sekunda. Można zmienić kolejność tak samo jak w dacie.

6. Podsumowanie
W tej części to wszystko. Jeśli przeczytałeś cały poradnik to powinieneś umieć zrobić prosty system newsów, który zawiera Dodawanie, usuwanie i modyfikacje newsów. Oczywiście jest do tego potrzebna znajomość formularzy html i trochę logicznego myślenia. W razie jakiś problemów proszę pisać na PW lub GG. Powodzenia !
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Poprawki:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Od Autora:
Proszę o wyrozumiałość, ponieważ jest to mój 1 poradnik. PHP uczę się już długo. Umiem wiele, dlatego chciałbym się podzielić moją wiedzą z innymi. W razie jakichkolwiek problemów piszcie na pw, gg : 31097055 lub w odpowiedziach. Będę starał się aktualizować poradnik, dodając w nim co róż to nowe rzeczy.

#2 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 10/12/2011 - 18:31

Poradnik całkiem porządny. Powoli zapełnia nam się dział PHP. Początkującym się z pewnością przyda. :)

Dołączona grafika


#3 Tybusz

    Początkujący

  • Użytkownik
  • PipPip
  • 14 postów
  • Miasto:Płock

Napisano 10/12/2011 - 21:30

W końcu ktoś polecił xamppa. Poradnik oczywiście szczegółowo opisany, nic dodać nic ująć - good job.
Panel Gracza v1 Screeny - http://pastebin.com/HFBxAAX1

#4 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 10/12/2011 - 21:54

Poleciłem xampp ponieważ z niego korzystam. No cóż mam viste i czasem trzeba kompa resetować żeby go odpalić. Ale po za tym jest bardzo dobry.

#5 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 11/12/2011 - 20:50

Dodałem poprawkę, ponieważ był błąd mysql_error();

#6 Sosna

    Zaangażowany

  • Użytkownik
  • PipPipPipPip
  • 63 postów

Napisano 12/01/2012 - 21:31

Poradnik dobry, warto byłoby też wspomnieć coś o Order by i Limit, w szczególności to pierwsze jest bardzo przydatne. Bardzo dobrze że podałeś przykłady do teorii, z pewnością sporo osób z tego skorzysta.

#7 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 12/01/2012 - 21:46

Chwilowo nie mam czasu dalej robić poradnika, ale myślę, że tak za tydzień dodam kolejny dział oczywiście wezmę pod uwagę twoją propozycję, myślę, że dodam order by i limit.

#8 Miks

    Nowy

  • Użytkownik
  • Pip
  • 1 postów

Napisano 13/01/2012 - 19:49

Poradnik bardzo fajny polecam.

#9 Maciek

    Aktywny

  • Użytkownik
  • PipPipPip
  • 31 postów
  • Miasto:Szczytno

Napisano 16/01/2012 - 19:59

Czasem wydaje się to takie łatwe, a czasem takie trudne ;)
Dzięki za poradnik.
Dołączona grafika

#10 Marcin Majewski

    Zaangażowany

  • Użytkownik
  • PipPipPipPip
  • 59 postów

Napisano 16/01/2012 - 20:47

Dobra, kilka poprawek.

Po pierwsze nie używaj
or die(); 
lecz używaj wyjątków
try { }
Możesz w ten czas uporządkować cały kod i przygotować się na błędy.

Dodatkowo dodaj informacje o zabezpieczeniach, czyli co to jest
 mysql_real_escape_string()
i z czym się je je. Dodatkowo powinieneś opisać wartości zmiennych, oraz co za jaką służy i że często bardziej warto jest używać
mysql_fetch_object()
niż
mysql_fetch_array();
dodatkowo, opisz dokładniej co to jest
mysql_close();
bo z punktu widzenia zwykłego nooba, jest to tylko, aby tego używać. A tak naprawdę tutaj chodzi o nie zamknięte sockety i pamięć RAM i ogólnie łącze.

Jeśli poprawisz, wystawię pozytywną opinie ;)

#11 Kamil Oniszczuk

    Aktywny

  • Użytkownik
  • PipPipPip
  • 38 postów

Napisano 25/01/2012 - 21:22

Mogłeś opisać używanie PDO.





Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych