Kategorie: Rady a návody

Práce s databází - 1. část

V této části se naučíme spojit s MySQL databází přes PHP a následně z ní načíst hodnoty do obyčejné HTML tabulky.

Jelikož jsem se začal do hloubky zajímat o PHP spojené s databázemi MySQL, chtěl bych se s vámi podělit o svůj postup. Předem bych chtěl upozornit, že budete potřebovat alespoň malou znalost HTML, SQL a musíte se dobře orientovat na FTP a v databázi. Takže, začněme první částí tohoto malého tutoriálu...

Jako první věc je důležité se s databází spojit. Předem radím, že je lepší si deklaraci propojení a pak i připojené udělat do samostatných souborů. Je to hlavně kvůli přehlednosti a že pak není potřeba lézt do jednoho dlouhého souboru a tam to hledat. Takže, pokud jste připraveni, vytvoříme si na FTP či mimo FTP soubor, který nazveme třeba defaultně config.php. Do tohoto souboru napíšeme toto:

<?php
$host = "cesta k MySQL";
$user = "uživatel";
$pass = "heslo";
$db = "databáze";
?>

- hodnoty v uvozovkách nahradíme potřebnými, takže vše, co je napsané výše, naleznete v administraci PHPMyAdmin. Pokud máte soubor vytvořen a hodnoty doplněny, přesuneme se k dalšímu kroku.

Dostáváme se už k samotnému načtení databáze. Vytvořte si soubor connect.php a do něj vpište následující řádky:

<?php
mysql_connect($host, $user, $pass);
mysql_query("SET NAMES 'cp1250'");
mysql_select_db($db);
?>

- zde není třeba nic měnit, kromě třídy mysql_query(). U té bych chtěl upozornit, že to záleží, v jakém kódování web a databázi budete mít. Pro češtinu se defaultně hodí cp-1250, ale samozřejmě, můžete použít i utf8 a další, to záleží na vás. V mém příkladu využívám 1250ku. Bez tohoto by se vám také mohlo stát, že by se vám kódování rozhazovalo a později by se i hodnoty doplňovaly ve špatném kódování.

Hlavní nastavení máme a dostaneme se pomalu k výpisu hodnot. Předtím je ještě nutné mít připravenou nějakou tu tabulku v databázi, ze které budeme číst. Jděte proto do administrace databáze a vytvořte si tabulku, dejme tomu o třech sloupcích, která se bude jmenovat test. Sloupce budou ID, které se bude automaticky navyšovat (nastavit auto_increment) a pak jmeno a text, které budou normální varchar(50). Pokud máte tabulku vytvořenou, můžete vepsat hodnoty rovnou v databázi, neboť k zapisování přes PHP se dostaneme později. 

Když už máte hodnoty, přejdeme k samotnému kódování. Vytvořte si soubor index.php. Zde vytvořte obyčejné HTML, které můžete samozřejmě použít i pomocí echo a nepsat tak jednou tagy pro PHP a jednou zase ne. Pokud máte základní tagy napsané, hned nahoru do body vložte toto:

<?php
include 'config.php';
include 'connect.php';
date_default_timezone_set('Europe/Prague');
?>

- jak vidíte, vložíme předešlou konfiguraci a připojení. Pak je tu ale ještě ta třetí věc a to třída date_default_timezone_set(). V mém příkladě je ji nutno využít, protože se můj hosting nenachází na českém serveru a tudíž později, pokud budeme pracovat s časem, by to nekorespondovalo s naším GMT. Pokud se však váš web nachází na českém serveru, je možné tuto část zcela vypustit.

Dostáváme se dále a zde už přecházíme k vypsání hodnot. Vytvořte si novou HTML tabulku a nebo napište pouze část kódu, v mém případě pomocí echo zavolám:

echo "<table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' width='500'>";

- výše zmíněné jinak záleží na vás, šířka, výška, ohraničení, prostě všechno.

Poté už jdeme k samotnému SQL. Vybereme tedy z tabulky všechny hodnoty. Toho docílíme následujícím řádkem.

$query = "SELECT * FROM test";

- jestliže rozumíte SQL, je vám jasné, že to je jednoduchý select všech hodnot z tabulky.

Jdeme dále. Zde nastavíme výsledek, ze kterého poté budeme vybírat hodnoty a samotné vybírání.

$result = mysql_query($query);
$num = mysql_numrows($result);

- $result značí deklaraci výsledku a $num je počet řádků podle toho, kolik bylo vybráno. Použití si hned řekneme.

Nyní tedy poslední část a to načítání hodnot. Použijeme pro to cyklus while. Nejprve deklarujeme proměnnou $i, kterou budeme pro tento cyklus využívat a která bude hlídat, dokud se nedostaneme až na konec výběru.

$i = 0;

A teď již načteme hodnoty. Rozjedeme cyklus while:

while ($i < $num) {

Poté deklarujeme proměnné, které budou mít hodnotu z výsledku selectu z tabulkytest. Čili budeme chtít jmeno a text.

$jmeno = mysql_result($result,$i,'jmeno');
$text = mysql_result($result,$i,'text');

- rozebereme trochu třídu mysql_result(). První parametr značí, ze kterého výsledku budeme číst, čili, jelikož jsme si jako výsledek určili proměnnou $result, využijeme ji. Druhý parametr značí, ze kterého řádku tabulky se bude číst, což bude záviset na zvyšujícím se $i. A nakonec, třetím parametrem určíme, jakou hodnotu z výsledku vybereme, takže v prvním případě to bude 'jmeno' a v druhém 'text'. Jak vidíte, je to logické a velmi jednoduché, není třeba nad tím nějak moc přemýšlet.

Do cyklu píšeme dál. Nyní pomocí echo konečně vykreslíme zbytek tabulky.

echo "<tr>";
echo "<td width='50px' height='10'> $jmeno</td>";
echo "<td width='100px' height='10'>$text</td>";
echo "</tr>";

- opět jednoduché, do obsahu buněk pouze vpíšeme námi požadované proměnné.

Konec cyklu bude stálé přičítání proměnné $i, dokud se nedosáhne počtu řádků. Tím můžeme cyklus uzavřít.

$i++;
}

- ke konci nezapomeňte ještě uzavřít celou tabulku pomocí </table> v echo.

Nyní si buď soubory nahrajte na FTP a nebo již web spusťte. Pokud se povedlo a vypsala/y se vám hodnota/y z tabulky test, tak gratuluju, zvládli jste první krok v práci s databázemi pomocí PHP a MySQL! ;)

 

V příštím díle si ukážeme, jak můžeme přidávat hodnoty pomocí formuláře.

Komentáře

Přidat komentář >

Nebyly přidány žádné komentáře.