Autor Zpráva
Urbik
Profil *
Dobrý den,
mám tabulku:

CREATE TABLE IF NOT EXISTS `nabidky` (
`id` int(11) unsigned NOT NULL auto_increment,
`nazev` varchar(40) collate utf8_unicode_ci NOT NULL,

`special` tinyint(1) NOT NULL default '0',
`foil` tinyint(1) NOT NULL default '0',
`jazyk` enum('anglicky','asijsky') collate utf8_unicode_ci NOT NULL default 'anglicky',
`edice` varchar(30) collate utf8_unicode_ci NOT NULL,
`pocet` tinyint(4) unsigned NOT NULL default '0',
`cena` smallint(5) unsigned NOT NULL default '0',
`poznamka` tinytext collate utf8_unicode_ci,
`img` tinyint(1) NOT NULL default '0' COMMENT 'Cesta k obrázku: ROOT."/imgs/upload/".$id_karty',
PRIMARY KEY (`id`),
KEY `vyhledávač` (`nazev`,`special`,`foil`,`jazyk`,`edice`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=47 ;

a další:

CREATE TABLE IF NOT EXISTS `objednavky` (
`jmeno` varchar(30) character set utf8 collate utf8_czech_ci NOT NULL,
`id_karty` int(10) unsigned default NULL,

`nazev_karty` varchar(40) character set utf8 collate utf8_czech_ci default NULL,
`pocet` tinyint(3) unsigned NOT NULL,
`stav` enum('hlidano','kosik','objednano') collate utf8_unicode_ci NOT NULL default 'kosik',
`cas` int(10) unsigned NOT NULL,
UNIQUE KEY `id_karty` (`jmeno`,`id_karty`,`nazev_karty`,`stav`),
KEY `jmeno` (`cas`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

a pomocí příkazu select chci vybrat záznamy se stejným názvem tedy "nazev" a "nazev_karty":

SELECT objednavky.id_karty, objednavky.nazev_karty, objednavky.pocet, nabidky.pocet, objednavky.cas, nabidky.cena FROM objednavky LEFT JOIN nabidky ON objednavky.nazev_karty = nabidky.nazev WHERE jmeno = ? AND stav = 'hlidano' ORDER BY objednavky.cas;

chyba: "Fatal error: Call to a member function bind_param() on a non-object in C:\AppServ\www\mtg\skripty\mysqlidb.php on line 148" tedy mám špatně napsaný SQL dotaz...

v případě:

SELECT objednavky.id_karty, objednavky.nazev_karty, objednavky.pocet, nabidky.pocet, objednavky.cas, nabidky.cena FROM objednavky LEFT JOIN nabidky ON objednavky.id_karty = nabidky.id WHERE jmeno = ? AND stav = 'hlidano' ORDER BY objednavky.cas;

však vše funguje správně...

Děkuji za případnou pomoc, Urbik
Urbik
Profil *
oprava: ve druhé tabulce jsem zvýraznil špatné sloupce, zvýrazněny mají být "id_karty" a "nazev_karty"

jen pro pořádek... ;D
Kajman_
Profil *
Máte poslední stabilní verzi? A když budete mít v obou sloupcích stejné collation, tak to taky padá? Případně, když ho doplníte do podmínky?
Urbik
Profil *
Bylo to tím collation, děkuji za radu!
Sice jsem to už předtím kontroloval, ale musel jsem se asi přehlídnout nebo prostě nějaké zmatení mysli... ;o)
Toto téma je uzamčeno. Odpověď nelze zaslat.