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
Nebyly přidány žádné komentáře.