Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.12
Prihlásený: 02.01.15
Príspevky: 94
Témy: 29
Príspevok NapísalOffline : 25.07.2013 19:53

Úč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/>';
}
?>







_________________
HP ProBook 4520s; CPU: Intel i5-480M 2,67 Ghz; GPU: ATI Radeon HD 6370M 1 GB; MB: Hewlett-Packard 1411; Chipset: IntelHM57 (IbexPeak-M DH); RAM: Hyundai DDR3 4GB (PC3-10600); HDD: Hitachi 500GB 7200RPM SATA-II; Zvuková karta: Axago ADA-X5; Reproduktory: Genius SW-G2.1 1250 GX Gaming; OS: openSUSE 13.1, 64-bit
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.12
Prihlásený: 02.01.15
Príspevky: 94
Témy: 29
Príspevok Napísal autor témyOffline : 25.07.2013 20:23

Skúsil som databázu vytvoriť znovu a znovu do nej vložiť údaje. Keď som si ju prezrel v SQL Buddy vyzeralo to ako predtým ale tento krát som nič neprepisoval. Keď som údaje načítal na stránku všetko sa už zobrazilo tak ako malo. Takže by som sa chcel spýtať prečo mi v SQL Buddy ukazuje slovenské slová ako keby nebolo použité správne kódovanie?







_________________
HP ProBook 4520s; CPU: Intel i5-480M 2,67 Ghz; GPU: ATI Radeon HD 6370M 1 GB; MB: Hewlett-Packard 1411; Chipset: IntelHM57 (IbexPeak-M DH); RAM: Hyundai DDR3 4GB (PC3-10600); HDD: Hitachi 500GB 7200RPM SATA-II; Zvuková karta: Axago ADA-X5; Reproduktory: Genius SW-G2.1 1250 GX Gaming; OS: openSUSE 13.1, 64-bit
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 26.07.2013 18:50

JTB píše:
Takže by som sa chcel spýtať prečo mi v SQL Buddy ukazuje slovenské slová ako keby nebolo použité správne kódovanie?
Pretože tie údaje sú v databáze uložené nesprávne. Ten skript vkladá do DB údaje v náhodnom kódovaní, ale keďže rovnaké kódovanie používa aj pri zobrazovaní, tak to vyzerá tak, ako keby tam žiadny problém nebol.

Ak sú tie údaje v UTF-8 (čo je asi najrozumnejšie kódovanie pri webe), tak po pripojení k DB treba MySQL povedať, že dáta budú práve v UTF-8, napr. takto:
Kód:
mysql_query("SET NAMES utf8;", $db) or die (mysql_error($db) );


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 27.07.2013 21:32

V prvom rade by som nepouzival mysql_* na tvojom mieste.. a potom sa zaoberal ostatnym..


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.12
Prihlásený: 02.01.15
Príspevky: 94
Témy: 29
Príspevok Napísal autor témyOffline : 28.07.2013 12:06

Ďakujem za odpoveď!







_________________
HP ProBook 4520s; CPU: Intel i5-480M 2,67 Ghz; GPU: ATI Radeon HD 6370M 1 GB; MB: Hewlett-Packard 1411; Chipset: IntelHM57 (IbexPeak-M DH); RAM: Hyundai DDR3 4GB (PC3-10600); HDD: Hitachi 500GB 7200RPM SATA-II; Zvuková karta: Axago ADA-X5; Reproduktory: Genius SW-G2.1 1250 GX Gaming; OS: openSUSE 13.1, 64-bit
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.12
Prihlásený: 02.01.15
Príspevky: 94
Témy: 29
Príspevok Napísal autor témyOffline : 28.07.2013 12:08

DeiForm píše:
V prvom rade by som nepouzival mysql_* na tvojom mieste.. a potom sa zaoberal ostatnym..


Mohol by si mi aj vysvetliť prečo to nepoužívať a čo namiesto toho používať? Učím sa zatial len z knihy, keď niečomu nerozumiem alebo mi nejde hľadám na fórach s týmto som zatial problém nemal, tak som to zatial neriešil. Ale rád si nechám poradiť.







_________________
HP ProBook 4520s; CPU: Intel i5-480M 2,67 Ghz; GPU: ATI Radeon HD 6370M 1 GB; MB: Hewlett-Packard 1411; Chipset: IntelHM57 (IbexPeak-M DH); RAM: Hyundai DDR3 4GB (PC3-10600); HDD: Hitachi 500GB 7200RPM SATA-II; Zvuková karta: Axago ADA-X5; Reproduktory: Genius SW-G2.1 1250 GX Gaming; OS: openSUSE 13.1, 64-bit
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 28.07.2013 16:58

Takže napríklad len z php.net manuálu
Citácia:
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:
mysqli_query()
PDO::query()


Pouzivaj mysqli_* alebo PDO.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.12
Prihlásený: 02.01.15
Príspevky: 94
Témy: 29
Príspevok Napísal autor témyOffline : 28.07.2013 21:08

DeiForm píše:
Takže napríklad len z php.net manuálu
Citácia:
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:
mysqli_query()
PDO::query()


Pouzivaj mysqli_* alebo PDO.


Ďakujem za radu/upozornenie. Knihu z ktorej sa učím o tom zmienka nebola. Je to už off topic ale napr. tento kód som upravil podľa dokumentácie ktorú som si pozrel. Len by som sa chcel spýtať,ak máš čas, či už by to bolo v poriadku.

Kód:
<?php
      
  $db = mysqli_connect("localhost","uzivatel","heslo","moviesite") or die("Error " . mysqli_error($db));
      
  mysqli_query($db, "SET NAMES utf8;") or die("Error " . mysqli_error($db));
      
  $dotaz = 'SELECT film_meno, film_rok, film_reziser, film_herci, film_typ
       FROM film
       ORDER BY film_meno ASC,
               film_rok DESC'; 
         
  $vysledky = mysqli_query($db, $dotaz);
         
  $pocet_filmov = mysqli_num_rows($vysledky);
               
  while($riadok = mysqli_fetch_array($vysledky))
  {
     extract($riadok);
     echo '<tr>';
     echo '<td>'. $film_meno. '</td>';
     echo '<td>'. $film_rok. '</td>';
     echo '<td>'. $film_reziser. '</td>';
     echo '<td>'. $film_herci. '</td>';
     echo '<td>'. $film_typ. '</td>';
     echo '</tr>';
 }


Samozrejme chýba k tomu kód HTML ale ten je myslím v tomto prípade nepotrebný.







_________________
HP ProBook 4520s; CPU: Intel i5-480M 2,67 Ghz; GPU: ATI Radeon HD 6370M 1 GB; MB: Hewlett-Packard 1411; Chipset: IntelHM57 (IbexPeak-M DH); RAM: Hyundai DDR3 4GB (PC3-10600); HDD: Hitachi 500GB 7200RPM SATA-II; Zvuková karta: Axago ADA-X5; Reproduktory: Genius SW-G2.1 1250 GX Gaming; OS: openSUSE 13.1, 64-bit
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 29.07.2013 12:29

Myslim ze malo by to byt ok, Ja osobne pouzivam mysqli v OOP a precitaj si PM ak tak tam budes mat viac info


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Kodovanie znakov

v Operačné systémy Microsoft

0

366

16.05.2010 18:20

sasori1512 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL kodovanie

v Databázy

3

996

28.02.2008 14:26

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kódovanie MySQL databázy

v PHP, ASP

2

543

23.04.2011 18:30

richo9996 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena kodovanie pri MySQL 4.0

v Databázy

5

748

27.08.2009 20:50

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vkladanie dát cez mysql konzolu - kódovanie

v Databázy

6

650

24.09.2011 19:54

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mapa znakov

v Operačné systémy Microsoft

2

2431

18.11.2009 19:36

Lukas9 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nespravne zobrazovanie znakov

v Redakčné systémy

1

664

12.10.2006 22:11

itsgoingd Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Redukovanie množstva znakov

v PHP, ASP

5

277

30.04.2013 15:36

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Množstvo rovnakých znakov

v PHP, ASP

1

493

14.05.2011 10:53

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Minimálny počet znakov

v PHP, ASP

3

546

27.07.2007 7:56

zero0x Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c - pocet znakov

v Assembler, C, C++, Pascal, Java

9

618

17.09.2011 11:21

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ Čitanie znakov/čísel

v Assembler, C, C++, Pascal, Java

6

560

09.05.2014 12:04

Lukys12345 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypísanie znakov v C

v Assembler, C, C++, Pascal, Java

4

465

18.04.2012 20:48

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sirka divu - vela znakov

v Ostatné

3

496

06.04.2009 17:11

exoomer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Textarea limit znakov onkeypress

v JavaScript, VBScript, Ajax

4

1114

14.05.2019 22:13

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nastavenie znakov na klávesnici

v Externé zariadenia

2

341

31.07.2014 11:12

DonnieBrasco Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra