Autor Zpráva
Bayerus
Profil *
Zdravím,

chci použít tento příkaz,ale nefunguje mi,poradí někdo,kde může být chyba ?

$query = mysql_query ("SELECT guid FROM character_skills WHERE skill = 163 IN(SELECT guid FROM characters WHERE (race= 1,3,4,7,11,22)");
$BlacksmithingAli = mysql_num_rows($query);

echo "Počet $BlacksmithingAli";
Taps
Profil
Bayerus:
jakou máš strukturu tabulek ?
DJ Miky
Profil
Můžeš si vypsat chybu pomocí mysql_error(), abys zjistil, že zápis
race= 1,3,4,7,11,22

ti nahlásí syntaktickou chybu. Na tohle se dá použít zápis
WHERE race IN (1,3,...,22)
Bayerus
Profil *
Struktura:

-- ----------------------------
-- Table structure for characters
-- ----------------------------
CREATE TABLE `characters` (
  `guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
  `account` int(10) unsigned NOT NULL default '0' COMMENT 'Account Identifier',
  `name` varchar(12) NOT NULL default '',
  `race` tinyint(3) unsigned NOT NULL default '0',
  `class` tinyint(3) unsigned NOT NULL default '0',
  `gender` tinyint(3) unsigned NOT NULL default '0',
  `level` tinyint(3) unsigned NOT NULL default '0',
  `xp` int(10) unsigned NOT NULL default '0',
  `money` int(10) unsigned NOT NULL default '0',
  `playerBytes` int(10) unsigned NOT NULL default '0',
  `playerBytes2` int(10) unsigned NOT NULL default '0',
  `playerFlags` int(10) unsigned NOT NULL default '0',
  `position_x` float NOT NULL default '0',
  `position_y` float NOT NULL default '0',
  `position_z` float NOT NULL default '0',
  `map` smallint(5) unsigned NOT NULL default '0' COMMENT 'Map Identifier',
  `instance_id` int(10) unsigned NOT NULL default '0',
  `instance_mode_mask` tinyint(3) unsigned NOT NULL default '0',
  `orientation` float NOT NULL default '0',
  `taximask` text NOT NULL,
  `online` tinyint(3) unsigned NOT NULL default '0',
  `cinematic` tinyint(3) unsigned NOT NULL default '0',
  `totaltime` int(10) unsigned NOT NULL default '0',
  `leveltime` int(10) unsigned NOT NULL default '0',
  `logout_time` int(10) unsigned NOT NULL default '0',
  `is_logout_resting` tinyint(3) unsigned NOT NULL default '0',
  `rest_bonus` float NOT NULL default '0',
  `resettalents_cost` int(10) unsigned NOT NULL default '0',
  `resettalents_time` int(10) unsigned NOT NULL default '0',
  `trans_x` float NOT NULL default '0',
  `trans_y` float NOT NULL default '0',
  `trans_z` float NOT NULL default '0',
  `trans_o` float NOT NULL default '0',
  `transguid` mediumint(8) unsigned NOT NULL default '0',
  `extra_flags` smallint(5) unsigned NOT NULL default '0',
  `stable_slots` tinyint(3) unsigned NOT NULL default '0',
  `at_login` smallint(5) unsigned NOT NULL default '0',
  `zone` smallint(5) unsigned NOT NULL default '0',
  `death_expire_time` int(10) unsigned NOT NULL default '0',
  `taxi_path` text,
  `arenaPoints` int(10) unsigned NOT NULL default '0',
  `totalHonorPoints` int(10) unsigned NOT NULL default '0',
  `todayHonorPoints` int(10) unsigned NOT NULL default '0',
  `yesterdayHonorPoints` int(10) unsigned NOT NULL default '0',
  `totalKills` int(10) unsigned NOT NULL default '0',
  `todayKills` smallint(5) unsigned NOT NULL default '0',
  `yesterdayKills` smallint(5) unsigned NOT NULL default '0',
  `chosenTitle` int(10) unsigned NOT NULL default '0',
  `knownCurrencies` bigint(20) unsigned NOT NULL default '0',
  `watchedFaction` int(10) unsigned NOT NULL default '0',
  `drunk` smallint(5) unsigned NOT NULL default '0',
  `health` int(10) unsigned NOT NULL default '0',
  `power1` int(10) unsigned NOT NULL default '0',
  `power2` int(10) unsigned NOT NULL default '0',
  `power3` int(10) unsigned NOT NULL default '0',
  `power4` int(10) unsigned NOT NULL default '0',
  `power5` int(10) unsigned NOT NULL default '0',
  `power6` int(10) unsigned NOT NULL default '0',
  `power7` int(10) unsigned NOT NULL default '0',
  `latency` mediumint(8) unsigned NOT NULL default '0',
  `speccount` tinyint(3) unsigned NOT NULL default '1',
  `activespec` tinyint(3) unsigned NOT NULL default '0',
  `exploredZones` longtext,
  `equipmentCache` longtext,
  `ammoId` int(10) unsigned NOT NULL default '0',
  `knownTitles` longtext,
  `actionBars` tinyint(3) unsigned NOT NULL default '0',
  `deleteInfos_Account` int(10) unsigned default NULL,
  `deleteInfos_Name` varchar(12) default NULL,
  `deleteDate` int(10) unsigned default NULL,
  PRIMARY KEY  (`guid`),
  KEY `idx_account` (`account`),
  KEY `idx_online` (`online`),
  KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';


-- ----------------------------
-- Table structure for character_skills
-- ----------------------------
CREATE TABLE `character_skills` (
  `guid` int(10) unsigned NOT NULL COMMENT 'Global Unique Identifier',
  `skill` smallint(5) unsigned NOT NULL,
  `value` smallint(5) unsigned NOT NULL,
  `max` smallint(5) unsigned NOT NULL,
  PRIMARY KEY  (`guid`,`skill`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
Bayerus
Profil *
Tak jsem použil.

$query = mysql_query ("SELECT guid FROM character_skills WHERE skill = 163 IN (SELECT guid FROM characters WHERE race IN (1,3,4,7,11,22)") or die("Nelze se připojit k MySQL: " . mysql_error());


a píše to chybu ....

Chyba
Bayerus
Profil *
Kdyz to napisu jenom takhle:

$query = mysql_query ("SELECT guid FROM character_skills WHERE skill = 333");


Tak je to OK ,napíše to 6 ;)

ale když je zatím to IN (blablablaba); tak to ukazuje 0 :(
okolojdouci
Profil *
Bayerus:
Četls #3 ?
Bayerus
Profil *
Ano cetl,tak se podivej na #5 .... tak jsem to tam pouzil a ERROR ..;)
kajaman
Profil
tak jednak tam chybí jedna uzavírací závorka a IMHO je to nesmyslně napsané, dá se jen odhadovat co tím chceš docílit:
SELECT guid FROM character_skills WHERE skill = 163 AND guid IN (SELECT guid FROM characters WHERE race IN (1,3,4,7,11,22))

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:

0