Účim sa PHP a MySQL. A neviem ako kódovať znaky aby si zobrazovalo aj mekčene, dĺžne. Skúšal som nasledovne:
Vytvoril som si databázu:Kód:
<?php
// Pripojenie k Mysql
$db = mysql_connect('localhost', 'uzivatel', 'heslo') or die ('Nemozem sa pripojit. Zkontrolujte prosim pripojenie k serveru. ');
//Ak hlavna dabaza neexistuje, vytvorim ju
$dotaz = 'CREATE DATABASE IF NOT EXISTS moviesite CHARACTER SET utf8 COLLATE utf8_slovak_ci ';
mysql_query($dotaz, $db) or die (mysql_error($db) );
//Nastavenie novej databazi ako pracovnej
mysql_select_db('moviesite', $db) or die (mysql_error($db));
//vytvorenie tabulku film
$dotaz = 'CREATE TABLE film (
film_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
film_meno VARCHAR(255) NOT NULL,
film_typ TINYINT NOT NULL DEFAULT 0,
film_rok SMALLINT UNSIGNED NOT NULL DEFAULT 0,
film_herci INTEGER UNSIGNED NOT NULL DEFAULT 0,
film_reziser INTEGER UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (film_id),
KEY film_typ (film_typ, film_rok)
)
ENGINE=MyISAM';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
//VYTVORENIE TABULKY TYPFILMU
$dotaz = 'CREATE TABLE typfilmu (
typfilmu_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
typfilmu_stitok VARCHAR(100) NOT NULL,
PRIMARY KEY (typfilmu_id)
)
ENGINE=MyISAM';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
// vytvorenie tabulky ludia
$dotaz = 'CREATE TABLE ludia(
ludia_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
ludia_plnemeno VARCHAR(255) NOT NULL,
ludia_herec TINYINT(1) UNSIGNED NOT NULL default 0,
ludia_reziser TINYINT(1) UNSIGNED NOT NULL default 0,
PRIMARY KEY (ludia_id)
)
ENGINE = MyISAM';
$vysledky = mysql_query($dotaz, $db) or die (mysql_error($db));
echo 'Databáza filmov bola úspešne vytvorená!';
?>
Do databázy vkladam údaje takto:
Kód:
// Pripojenie k Mysql.
$db = mysql_connect('localhost', 'uzivatel', 'heslo') or die ('Nemôžem sa pripojit, skotrolujte pripojenie k serveru');
// Nastavenie databazi ako pracovnej
mysql_select_db('moviesite', $db) or die(mysql_error($db));
// Vlozenie udajov do tabulky "film" .
$dotaz = 'INSERT INTO film (film_id, film_meno, film_typ,
film_rok, film_herci, film_reziser)
VALUES
(1, "Božský Bruce", 5, 2003, 1, 2 ),
(2, "Maléry pana Šikuly", 5, 1999, 5, 6 ),
(3, "Grand Canyon", 2, 1991, 4, 3 )';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
// Nova data do tabulky "typfilmu" .
$dotaz = 'INSERT INTO typfilmu (typfilmu_id, typfilmu_stitok)
VALUES
(1, "Sci Fi"),
(2, "Drama"),
(3, "Dobrodružný"),
(4, "Vojnový"),
(5, "Komedia"),
(6, "Horor"),
(7, "Akčný"),
(8, "Detský")';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
// Nova data do tabulky "ludia" .
$dotaz = 'INSERT INTO ludia (ludia_id, ludia_plnemeno,
ludia_herec, ludia_reziser)
VALUES
(1, "Jim Carrey", 1, 0 ),
(2, "Tom Shadyac", 0, 1 ),
(3, "Lawrence Kasdan", 0, 1 ),
(4, "Kevin Kline", 1, 0 ),
(5, "Ron Livingston", 1, 0 ),
(6, "Mike Judge", 0, 1 )';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
echo 'Vloženie do databázi prebehlo úspešne!';
?>
No a už teraz keď som si v SQL Buddy prezrel vytvorenú databázu nezobrazovali sa mekčene a dĺžne ale len rôzne znaky namiesto nich. Kódovanie ale bolo nastavené utf8, tak som ručne prepísal všetky slová a uložil databázu, všetko sa zobrazovalo v poriadku.
Ale keď som si dal vypísať obsah databázy do okna prehliadača kódovanie znovu nefungovalo. Viete mi poradiť prečo?
Databázu som vypisoval takto:Kód:
<?php
$db = mysql_connect('localhost', 'uzivatel', 'heslo')
or die ('Nemôžem sa pripojiť skontrolujte pripojenie k serveru');
mysql_select_db('moviesite', $db) or die(mysql_error($db));
// vyber názov filmou vyrobených od roku 1990
$dotaz = 'SELECT film_meno, film_typ
FROM film
WHERE film_rok > 1990
ORDER BY film_typ';
$vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
// zobraz vysledky
while ($riadok = mysql_fetch_array($vysledky)) {
foreach ($riadok as $hodnota) {
echo $hodnota . ' ';
}
echo '<br/>';
}
?>