Autor Zpráva
stein
Profil *
Zdravím,

chci udělat na stránce form na vytvoření tabulky v databázi.
Jméno tabulky je řetězec získaný z textboxu. Ovšem při zadání řetězce s diakritikou se tabulka nevytvoří. Bez diakritiky ano.

Nemáte s tím někdo zkušenosti? Upozorňuji, že jsem v PHP a MySQL začátečník, tak do mě neperte moc odborných výrazů :D


Zde je zdrojový kód:

$nazev = $_POST['nazev'];

if(isset($_POST['pridat'])) {
    if($nazev != "") {
    $jmeno = mysql_real_escape_string($nazev);
    $q = "CREATE TABLE ".$nazev." (
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      nadpis TEXT,
      text TEXT)";
    mysql_query($q);
    header('Location: vypis_kategorii.php?db='.$db);
    }else{
      echo "Vyplňte název kategorie!";
    }
  }
juriad
Profil
stein:
Opravdu nechceš vytvářet tabulku s diakritikou.
Ano, lze to, stačí název obalit zpětnými apostrofy:
$q = "CREATE TABLE `".$nazev."` (
stein
Profil *
Potřebuju nějak udělat vytvoření položky v menu pro laika.
Po úpravě podle tvé rady už zápis funguje, ale samozřejmě nastala věc, kvůli které ses mě asi ptal, jestli to chci opravdu vytvářet s diakritikou. Tabulka "řeřicha" se vytvoří jako "Å™eÅ™icha" a s tím se pak pracuje těžko.

Nemáš nějaký návrh, jak takovéto přidávání do menu udělat?
Díky za radu!
juriad
Profil
Tabulka je objekt, který se obvykle vytvoří jen při instalaci aplikace a potom se už nikdy další nevytváří ani nemažou.
Měl bys nejspíš mít pro celé menu jednu tabulku. Trochu víc se rozepiš, jak si to menu představuješ.
stein
Profil *
Pokud by byly všechny položky menu v jedné tabulce, tak by musely mít i stejnou strukturu, pokud. Jenže každá položka má svůj vlastní obsah, který je v databázi jinak strukturovaný.
Nešlo by například přenastavit kódování databáze tak, aby se do ní tabulky zapisovali s českými znaky? např. utf8_czech_ci ?
juriad
Profil
Některé časteji řešené dotazy pro MySQL - FAQ » MySQL a čeština
Jak může mít každá položka menu mít jinou strukturu, to si nedokážu představit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: