getallen vergelijken
Ultimatum - 16/07/2006 23:32
PHP expert
Ik heb 2 databases, 1 met de members en 1tje waar alle ranken in staan, nu wil ik met onderstaande code gaan vergelijken maar.. als het level in database van de members 0 is word er niks weegegeven, is het level 4 is komt er banned te staan.
function levels($id)
{
$select = mysql_query("SELECT * FROM members, personal WHERE perid = userid && userid = '".$id."'");
$arr = mysql_fetch_array($select);
$lselect = mysql_query("SELECT * FROM level WHERE id = '".$arr['level']."'");
$larr = mysql_fetch_array($lselect);
return ''.$larr['rank'].'';
}
function levels( $id )
{
$select = mysql_query ( "SELECT * FROM members, personal WHERE perid = userid && userid = '" . $id . "'" ) ;
$lselect = mysql_query ( "SELECT * FROM level WHERE id = '" . $arr [ 'level' ] . "'" ) ;
return '' . $larr [ 'rank' ] . '' ;
}
dit staat er precies in de level database
INSERT INTO `level` VALUES (0, 'banned', '000000', '<s>-</s>');
INSERT INTO `level` VALUES (1, 'Member', '000000', '');
INSERT INTO `level` VALUES (2, 'Moderator', 'FF0000', '<b>-</b>');
INSERT INTO `level` VALUES (3, 'Tutorial staff', 'FFFF00', '<b>-</b>');
INSERT INTO `level` VALUES (4, 'Administrator', 'FF00FF', '<b>-</b>');
INSERT INTO `level` VALUES ( 0 , 'banned' , '000000' , '<s>-</s>' ) ;
INSERT INTO `level` VALUES ( 1 , 'Member' , '000000' , '' ) ;
INSERT INTO `level` VALUES ( 2 , 'Moderator' , 'FF0000' , '<b>-</b>' ) ;
INSERT INTO `level` VALUES ( 3 , 'Tutorial staff' , 'FFFF00' , '<b>-</b>' ) ;
INSERT INTO `level` VALUES ( 4 , 'Administrator' , 'FF00FF' , '<b>-</b>' ) ;
als ik het id van banned van 0 naar 10 verander maakt dat niks uit
(om uit te sluiten dat de tabel niet door de 0 flipt)
16 antwoorden
Gesponsorde links
roelh - 16/07/2006 23:46
PHP gevorderde
Je kunt een JOIN gebruiken?
mysql_query("SELECT * FROM members INNER JOIN levels ON (member.rank = level.id) where user = ".$id."");
mysql_query ( "SELECT * FROM members INNER JOIN levels ON (member.rank = level.id) where user = " . $id . "" ) ;
Moet je zel ff goed aanpassen aan je eigen tabelnamen e.d.
Ga ervan uit dat bij members alleen getallen hebt voor ranken?
Suc6 ermee
Ibrahim - 16/07/2006 23:56
PHP expert
en integers hebben geen quotes nodig
roelh - 17/07/2006 00:07
PHP gevorderde
Werkt dat van mij? nadat je goede tabelnaam en rijen hebt aangegeven?
Ultimatum - 17/07/2006 00:14
PHP expert
nu krijg ik alleen de level 3 te zien
Ultimatum - 17/07/2006 00:19
PHP expert
ik zeg toch dat 1 rank het wel doet en die andere 2 niet, dus het ligt niet aan mijn tabellen maar de functie
Ultimatum - 17/07/2006 00:23
PHP expert
CREATE TABLE `level` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`rank` VARCHAR( 100 ) NOT NULL ,
`color` INT( 6 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO `level` VALUES (0, 'banned', '000000', '<s>-</s>');
INSERT INTO `level` VALUES (1, 'Member', '000000', '');
INSERT INTO `level` VALUES (2, 'Moderator', 'FF0000', '<b>-</b>');
INSERT INTO `level` VALUES (3, 'Tutorial staff', 'FFFF00', '<b>-</b>');
INSERT INTO `level` VALUES (4, 'Administrator', 'FF00FF', '<b>-</b>');
CREATE TABLE `members` (
`userid` int(10) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`password` varchar(40) NOT NULL,
`regdate` varchar(10) NOT NULL,
`level` int(1) NOT NULL default '1',
`rank` varchar(150) NOT NULL default 'member',
`active` int(1) NOT NULL default '0',
`active_key` varchar(10) NOT NULL,
`banned` int(1) NOT NULL default '0',
`banned_reason` text NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=MyISAM ;
CREATE TABLE `level` (
`id` INT
( 10 ) NOT
NULL AUTO_INCREMENT PRIMARY
KEY , `rank` VARCHAR( 100 ) NOT NULL ,
`color` INT( 6 ) NOT NULL
) ENGINE = MYISAM ;
INSERT INTO `level` VALUES ( 0 , 'banned' , '000000' , '<s>-</s>' ) ;
INSERT INTO `level` VALUES ( 1 , 'Member' , '000000' , '' ) ;
INSERT INTO `level` VALUES ( 2 , 'Moderator' , 'FF0000' , '<b>-</b>' ) ;
INSERT INTO `level` VALUES ( 3 , 'Tutorial staff' , 'FFFF00' , '<b>-</b>' ) ;
INSERT INTO `level` VALUES ( 4 , 'Administrator' , 'FF00FF' , '<b>-</b>' ) ;
CREATE TABLE `members` (
`userid` int( 10 ) NOT NULL auto_increment,
`username` varchar( 255 ) NOT NULL ,
`password` varchar( 40 ) NOT NULL ,
`regdate` varchar( 10 ) NOT NULL ,
`level` int( 1 ) NOT NULL default '1' ,
`rank` varchar( 150 ) NOT NULL default 'member' ,
`active` int( 1 ) NOT NULL default '0' ,
`active_key` varchar( 10 ) NOT NULL ,
`banned` int( 1 ) NOT NULL default '0' ,
`banned_reason` text NOT NULL ,
) ENGINE= MyISAM ;
roelh - 17/07/2006 00:24
PHP gevorderde
mysql_query("SELECT * FROM members INNER JOIN level ON (member.rank = level.id) where userid = 1");
mysql_query ( "SELECT * FROM members INNER JOIN level ON (member.rank = level.id) where userid = 1" ) ;
Doe eens zo, en verander dan eens userid = 1 naar 2, 3, 4 e.d.
Kijk zo eens dan.
Ultimatum - 17/07/2006 00:31
PHP expert
dan werkt het wel gewoon
roelh - 17/07/2006 00:34
PHP gevorderde
mysql_query("SELECT * FROM members INNER JOIN level ON (member.rank = level.id) where userid = "'".$id."'");
mysql_query ( "SELECT * FROM members INNER JOIN level ON (member.rank = level.id) where userid = " '".$id."' ");
Zo dan?
Hoe roep je dit eiglijk aan dan?
Dat je op een naam klikt en zo naar ID gaat ofzo?
Ultimatum - 17/07/2006 00:53
PHP expert
laat maar ik weet het al, in de functie zette ik het level neer ipv het id dus het is nu opgelost
Gesponsorde links
Dit onderwerp is gesloten .