login  Naam:   Wachtwoord: 
Registreer je!
 Forum

getallen vergelijken

Offline Ultimatum - 16/07/2006 23:32
Avatar van UltimatumPHP 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.

  1. function levels($id)
  2. {
  3. $select = mysql_query("SELECT * FROM members, personal WHERE perid = userid && userid = '".$id."'");
  4. $arr = mysql_fetch_array($select);
  5.  
  6. $lselect = mysql_query("SELECT * FROM level WHERE id = '".$arr['level']."'");
  7. $larr = mysql_fetch_array($lselect);
  8.  
  9. return ''.$larr['rank'].'';
  10.  
  11. }


dit staat er precies in de level database
  1. INSERT INTO `level` VALUES (0, 'banned', '000000', '<s>-</s>');
  2. INSERT INTO `level` VALUES (1, 'Member', '000000', '');
  3. INSERT INTO `level` VALUES (2, 'Moderator', 'FF0000', '<b>-</b>');
  4. INSERT INTO `level` VALUES (3, 'Tutorial staff', 'FFFF00', '<b>-</b>');
  5. 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
Offline roelh - 16/07/2006 23:46
Avatar van roelh PHP gevorderde Je kunt een JOIN gebruiken?
  1. 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 
Offline MechaVore - 16/07/2006 23:51
Avatar van MechaVore Gouden medaille

PHP gevorderde
ja, dat is het beste, maar sinds wanneer kan je een query in 2 tabellen doen zonder join?

SELECT * FROM members, personal blabla

hier zou denk ik de fout kunnen liggen, zet er eens or die(mysql_error()); achter..

Maar je kan hiervoor inderdaad gewoon een join gebruiken tenzij je 2 databases gebruikt? (bedoel je niet 2 tabellen?)
Offline Ibrahim - 16/07/2006 23:56
Avatar van Ibrahim PHP expert en integers hebben geen quotes nodig
Offline roelh - 16/07/2006 23:58
Avatar van roelh PHP gevorderde Ik denk dat hij 2 tabellen bedoeld ja.
En dat van: SELECT * FROM members, personal blabla
Had ik nog niet eens zosnel gezien, kan ook nog fout zijn ja 
Offline Ultimatum - 17/07/2006 00:04
Avatar van Ultimatum PHP expert ja ik bedoel 2 tabellen en nee dat van 2 tabellen zonder join kan

http://www.site...1#algemeen
Offline roelh - 17/07/2006 00:07
Avatar van roelh PHP gevorderde Werkt dat van mij? nadat je goede tabelnaam en rijen hebt aangegeven?
Offline Ultimatum - 17/07/2006 00:14 (laatste wijziging 17/07/2006 00:15)
Avatar van Ultimatum PHP expert nu krijg ik alleen de level 3 te zien, en level 0 en 4 niet

hmm nog nooit dubbele post gehad 
Offline Ultimatum - 17/07/2006 00:14
Avatar van Ultimatum PHP expert nu krijg ik alleen de level 3 te zien
Offline roelh - 17/07/2006 00:15
Avatar van roelh PHP gevorderde Hmmss...wat zijn je tabellen, post ze allebei hier eens, als je wilt 
Offline Ultimatum - 17/07/2006 00:19
Avatar van Ultimatum 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
Offline roelh - 17/07/2006 00:20
Avatar van roelh PHP gevorderde Euh rustig ff, probleem te helpen, oke?
Hij pakt gewoon rank bij member...moet goed zijn dus.
Check jij alles ff na, en wil je best helpen, dus tabellen zouden fijn zijn 
Offline Ultimatum - 17/07/2006 00:23
Avatar van Ultimatum PHP expert
  1. CREATE TABLE `level` (
  2. `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `rank` VARCHAR( 100 ) NOT NULL ,
  4. `color` INT( 6 ) NOT NULL
  5. ) ENGINE = MYISAM ;
  6.  
  7. INSERT INTO `level` VALUES (0, 'banned', '000000', '<s>-</s>');
  8. INSERT INTO `level` VALUES (1, 'Member', '000000', '');
  9. INSERT INTO `level` VALUES (2, 'Moderator', 'FF0000', '<b>-</b>');
  10. INSERT INTO `level` VALUES (3, 'Tutorial staff', 'FFFF00', '<b>-</b>');
  11. INSERT INTO `level` VALUES (4, 'Administrator', 'FF00FF', '<b>-</b>');
  12.  
  13. CREATE TABLE `members` (
  14. `userid` int(10) NOT NULL auto_increment,
  15. `username` varchar(255) NOT NULL,
  16. `password` varchar(40) NOT NULL,
  17. `regdate` varchar(10) NOT NULL,
  18. `level` int(1) NOT NULL default '1',
  19. `rank` varchar(150) NOT NULL default 'member',
  20. `active` int(1) NOT NULL default '0',
  21. `active_key` varchar(10) NOT NULL,
  22. `banned` int(1) NOT NULL default '0',
  23. `banned_reason` text NOT NULL,
  24. PRIMARY KEY (`userid`)
  25. ) ENGINE=MyISAM ;
Offline roelh - 17/07/2006 00:24
Avatar van roelh PHP gevorderde
  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.
Offline Ultimatum - 17/07/2006 00:31
Avatar van Ultimatum PHP expert dan werkt het wel gewoon
Offline roelh - 17/07/2006 00:34
Avatar van roelh PHP gevorderde
  1. 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?
Offline Ultimatum - 17/07/2006 00:53
Avatar van Ultimatum 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.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.224s