Autor Zpráva
huf
Profil
Ahoj,
potřeboval bych prosím poradit. Snažím se vložit data do tabulky, jejíž název je definován v proměnné. Napsal jsem to takto:

"INSERT INTO ".$id_hry." (y, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) VALUES ('$a', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')";

ale nefunguje to, jak by jste to napsali?
TomášK
Profil
Nahraď 1,2,3,...10 názvy sloupců, myslím, že MySQL nerozumí syntaxi, že se jedná o první, druhý atd sloupec (ani si nejsem jistý, že jsi to tak chtěl).
huf
Profil
Tak sloupce 1,2.... mám už v tabulce vytvořené. Je celkem důležité, aby se tam jmenovaly - je to tabulka souřadnic
kajaman
Profil
"INSERT INTO ".$id_hry." (y, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) VALUES ('" . $a . "', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')"; 
Akacko
Profil
huf
Podle předchozího příspěvku jsem si domyslel že se jedna o tabulku pro piškvorky. Chtěl bych ti říct, že máš špatný návrh databáze. Co když budeš chtít pole např. 15x15 nebo 100x100? To budeš měnit tabulku?
tiso
Profil
huf - to vyzerá na zle navrhnutú tabuľku...
AM_
Profil
Piškvorky jsem kdysi programoval a data jsem ukládal do dočasných souborů, přijde mi to v tomhle případě skoro jednodušší, než zatěžovat databázi. Pokud to ale chceš přes DB, měl by vypadat formát spíš takto:
CREATE TABLE pisq(
 id INT NOT NULL AUTO_INCREMENT,
 game_id INT, --aby mohlo bezet vic her soucasne, ocislujes si je a odlisis, ke ktere tento zaznam patri
 x INT,
 y INT,
 player INT, --1=prvni hrac, 2=druhy; slo by to i jako ENUM('krizek', 'kolecko');
 PRIMARY KEY(id),
 UNIQUE KEY(game_id, x, y) --predchazi dvojimu zaznamu pro jedno policko
);

přičemž políčka, na kterých není ani křížek, ani kolečko, mít v databázi záznam nebudou.
nightfish
Profil
huf
rozhodně bude v tomto případě potřeba uzavřít názvy sloupců do zpětných apostrofů...
`y`, `1`, `2`, `3`, ...
Majkl578
Profil
huf
ale nefunguje to, jak by jste to napsali?

$tabulka = 'nejaka_tabulka';
$data = array(
'prvni' => 'nejaky obsah, klidne s apostrofy (\') ',
'druhy' => 'druha vec'
);

dibi::insert($tabulka, $data)->execute();

vysledek:
INSERT INTO `nejaka_tabulka` (`prvni`, `druhy`) 
VALUES ('nejaky obsah, klidne s apostrofy (\') ', 'druha vec')

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: