Also ich möchte die Freunde aller Chars abfragen und ihren Namen sowie den Online Status ausgeben. Die Tabellen sind so aufgebaut:
friends
char
Als abfrage zu welchem account es gehört benutze ich die "account_id"
aus dieser Tabelle:
also z.B. mit
jetzt kann ich ja aus der Tabelle char folgendes abfragen
Somit hätte ich nun alle char_id des Accounts.
Und jetzt komm ich nicht mehr weiter:
die aus der Tabelle friend stammende friend_id
ist die char_id des Freundes also müsste ich
nur irgentwie die friend_id abfragen um sie wieder mit der char_id aus der tabelle char
zusammenzubringen damit ich dort den name abfragen kann.
Hat jemand einen lösungsansatz?
friends
PHP:
CREATE TABLE IF NOT EXISTS `friends` (
`char_id` int(11) NOT NULL default '0',
`friend_account` int(11) NOT NULL default '0',
`friend_id` int(11) NOT NULL default '0',
KEY `char_id` (`char_id`)
) ENGINE=MyISAM;
PHP:
CREATE TABLE IF NOT EXISTS `char` (
`char_id` int(11) unsigned NOT NULL auto_increment,
`account_id` int(11) unsigned NOT NULL default '0',
`char_num` tinyint(1) NOT NULL default '0',
`name` varchar(30) NOT NULL default '',
`class` smallint(6) unsigned NOT NULL default '0',
`base_level` smallint(6) unsigned NOT NULL default '1',
`job_level` smallint(6) unsigned NOT NULL default '1',
`base_exp` bigint(20) unsigned NOT NULL default '0',
`job_exp` bigint(20) unsigned NOT NULL default '0',
`zeny` int(11) unsigned NOT NULL default '0',
`str` smallint(4) unsigned NOT NULL default '0',
`agi` smallint(4) unsigned NOT NULL default '0',
`vit` smallint(4) unsigned NOT NULL default '0',
`int` smallint(4) unsigned NOT NULL default '0',
`dex` smallint(4) unsigned NOT NULL default '0',
`luk` smallint(4) unsigned NOT NULL default '0',
`max_hp` mediumint(8) unsigned NOT NULL default '0',
`hp` mediumint(8) unsigned NOT NULL default '0',
`max_sp` mediumint(6) unsigned NOT NULL default '0',
`sp` mediumint(6) unsigned NOT NULL default '0',
`status_point` smallint(4) unsigned NOT NULL default '0',
`skill_point` smallint(4) unsigned NOT NULL default '0',
`option` int(11) NOT NULL default '0',
`karma` tinyint(3) NOT NULL default '0',
`manner` tinyint(3) NOT NULL default '0',
`party_id` int(11) unsigned NOT NULL default '0',
`guild_id` int(11) unsigned NOT NULL default '0',
`pet_id` int(11) unsigned NOT NULL default '0',
`homun_id` int(11) unsigned NOT NULL default '0',
`hair` tinyint(4) unsigned NOT NULL default '0',
`hair_color` smallint(5) unsigned NOT NULL default '0',
`clothes_color` smallint(5) unsigned NOT NULL default '0',
`weapon` smallint(6) unsigned NOT NULL default '1',
`shield` smallint(6) unsigned NOT NULL default '0',
`head_top` smallint(6) unsigned NOT NULL default '0',
`head_mid` smallint(6) unsigned NOT NULL default '0',
`head_bottom` smallint(6) unsigned NOT NULL default '0',
`last_map` varchar(11) NOT NULL default '',
`last_x` smallint(4) unsigned NOT NULL default '53',
`last_y` smallint(4) unsigned NOT NULL default '111',
`save_map` varchar(11) NOT NULL default '',
`save_x` smallint(4) unsigned NOT NULL default '53',
`save_y` smallint(4) unsigned NOT NULL default '111',
`partner_id` int(11) unsigned NOT NULL default '0',
`online` tinyint(2) NOT NULL default '0',
`father` int(11) unsigned NOT NULL default '0',
`mother` int(11) unsigned NOT NULL default '0',
`child` int(11) unsigned NOT NULL default '0',
`fame` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`char_id`),
KEY `account_id` (`account_id`),
KEY `party_id` (`party_id`),
KEY `guild_id` (`guild_id`),
KEY `name` (`name`),
KEY `online` (`online`)
) ENGINE=MyISAM AUTO_INCREMENT=150000;
aus dieser Tabelle:
PHP:
CREATE TABLE IF NOT EXISTS `login` (
`account_id` int(11) unsigned NOT NULL auto_increment,
`userid` varchar(23) NOT NULL default '',
`user_pass` varchar(32) NOT NULL default '',
`lastlogin` datetime NOT NULL default '0000-00-00 00:00:00',
`sex` enum('M','F','S') NOT NULL default 'M',
`logincount` mediumint(9) unsigned NOT NULL default '0',
`email` varchar(39) NOT NULL default '',
`level` tinyint(3) NOT NULL default '0',
`error_message` smallint(11) unsigned NOT NULL default '0',
`connect_until` int(11) unsigned NOT NULL default '0',
`last_ip` varchar(100) NOT NULL default '',
`memo` smallint(11) unsigned NOT NULL default '0',
`ban_until` int(11) unsigned NOT NULL default '0',
`state` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`account_id`),
KEY `name` (`userid`)
) ENGINE=MyISAM AUTO_INCREMENT=2000000;
PHP:
$query = "SELECT `account_id` FROM `login` WHERE `web_userid`='".$_REQUEST['nickname']."'";
$abfrage = mysql_query($query);
$row = mysql_fetch_assoc($abfrage);
$accid = $row['account_id'];
PHP:
$que = "SELECT `char_id` FROM `char` WHERE `account_id`='$accid'";
$ask = mysql_query($que);
$ro = mysql_fetch_assoc($ask);
Und jetzt komm ich nicht mehr weiter:
die aus der Tabelle friend stammende friend_id
ist die char_id des Freundes also müsste ich
nur irgentwie die friend_id abfragen um sie wieder mit der char_id aus der tabelle char
zusammenzubringen damit ich dort den name abfragen kann.
Hat jemand einen lösungsansatz?