problemen met logic operators

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Clown

clown

04/03/2007 11:55:00
Quote Anchor link
ik heb een stukje code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
elseif (
$groepenrow['group_id'] == "5" AND
$groepenrow['group_id'] != "269" AND
$groepenrow['group_id'] != "327" AND
$groepenrow['group_id'] != "270") {
echo 'alleen 5';
 }

elseif (
$groepenrow['group_id'] == "5" AND
$groepenrow['group_id'] != "269" AND
$groepenrow['group_id'] != "327" AND
$groepenrow['group_id'] == "270") {
echo '5 en 270';    
 }

else {
echo 'allees';
 }
?>


het staat ervoor dat als je een bepaalde group-IDen wel hebt en bepaalde group-IDen niet hebt, dat hij een stukje tekst toont,,

zelf heb ik group ID 5 en 270,, maar als ik deze code gebruik, geeft hij alleen de code weer van dat ik alleen ID 5 heb, terwijl ik ze zowiezo 5 en 270 bezit.

ik hoop dat ik duidelijk genoeg ben =P

moet ik misschien wat anders gebruiken dan AND ?
Gewijzigd op 01/01/1970 01:00:00 door Clown
 
PHP hulp

PHP hulp

29/03/2024 00:49:31
 
Martijn B

Martijn B

04/03/2007 12:01:00
Quote Anchor link
Dus bij jou kan 1 gebruiker bij meerdere groepen horen?

Dus moet je in jou situatie ook meer dan 1 variabele hebben waar die groep id in staat. PHP zal dus meer dan 1 keer door deze code moeten om al jou groep id's te kunnen weergeven.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Clown

clown

04/03/2007 12:04:00
Quote Anchor link
jep een gebruiker kan bij meerdere groepen horen,

ik heb gedaan dat als hij bv wel in 5 en 270 zit en niet in 269 en 327 dat hij dan 5 en 270 moet weergeven, maar dan geeft hij alleen 5 weer =S

terwijl ik toch echt heb getypt

WEL in 5 EN
NIET in 269 EN
NIET in 327 EN
WEL in 270

maar toch kijkt hij alleen maar naar de eerste ofzo =S
 
Martijn B

Martijn B

04/03/2007 12:10:00
Quote Anchor link
Dat komt door die else if.

Je hebt nu zo iets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$getal
= 1;

if( $getal == 1 )
{

  echo '1e if';
}

elseif( $getal == 1 && $getal != 2 )
{

  echo '2e if';
}

?>


Als $getal nu 1 is dat zal PHP nooit in de 2e if gaan.

edit:

Maar wat jij moet hebben is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$aGroupID
= array(5,270);

echo 'Je groep ids zijn: ';

foreach( $aGroupID as $v )
{

  echo $v;
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Clown

clown

04/03/2007 12:12:00
Quote Anchor link
ahaa ,, dus mijn code kijkt alleen maar naar het eerste getal? wat moet ik dan gebruiken ipv else if?

oh je heb et aangepast =P okee ik ga et proberen =)
maar werkt dat ook zo als je group id's worde opgehalad uit een mysql database?
Gewijzigd op 01/01/1970 01:00:00 door clown
 
Martijn B

Martijn B

04/03/2007 12:21:00
Quote Anchor link
Dat is nu juist de bedoeling, denk ik :D

Wat je dan krijgt is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$rQuery
= mysql_query('SELECT group_id FROM user_to_groups WHERE user_id = 1');

if( $rQuery === false )
{

  die('OoOo, query fout!');
}


echo 'Je groep ids zijn: ';

while( list($iGroupID) = mysql_fetch_row($rQuery) )
{

  echo $iGroupID;
}

?>


edit:

Ik neem aan dat je een koppel tabel hebt met minimaal 2 kolommen user_id en group_id.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Clown

clown

04/03/2007 12:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php $groepen = mysql_query("SELECT group_id FROM phpbb_user_group WHERE user_id = " . $userdata['user_id']) or die (mysql_error());
    while($groepenrow = mysql_fetch_assoc($groepen)) {


....


}
?>


dat is mn query =P dus dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php $groepen = mysql_query("SELECT group_id FROM phpbb_user_group WHERE user_id = " . $userdata['user_id']) or die (mysql_error());
    while(list($groepenrow) = mysql_fetch_assoc($groepen)) {


echo $groepenrow ;


}
?>
Gewijzigd op 01/01/1970 01:00:00 door clown
 
Martijn B

Martijn B

04/03/2007 12:33:00
Quote Anchor link
Maar phpbb_user_group is geen koppel tabel, volgens mij.

Ik dacht dat phpbb ook ergens een koppeltabel heeft voor gebruikers en groepen, zoek die eens op. Want die heb je nodig in je query.

edit:

Staan die gebruikers groepen niet in $userdata?

doe eens, ergens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
print_r($userdata);
?>


edit2:

Welke phpbb hebt je versie 3?
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Clown

clown

04/03/2007 12:37:00
Quote Anchor link
nope want dat wordt alleemaal opgehalad uit phpbb_users daar staat niet bij welke users in welke groepen zitten

wlke users in welke groepen staat in phpbb_user_group


edit:
versie 2.0.1. nog wat gezeik =P
Gewijzigd op 01/01/1970 01:00:00 door clown
 
Martijn B

Martijn B

04/03/2007 12:44:00
Quote Anchor link
Je hebt gelijk.

Dat word het:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$rQuery
= mysql_query('SELECT group_id FROM phpbb_user_group WHERE user_id = ' . $userdata['user_id']) or die (mysql_error());

while( list($iGroupID) = mysql_fetch_row($groepen) )
{

  echo $iGroupID;
}

?>


edit:

Zo ziet de tabel er uit in PhpBB3:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
# Table: 'phpbb_user_group'
CREATE TABLE phpbb_user_group (
    group_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
    group_leader tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
    user_pending tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
    KEY group_id (group_id),
    KEY user_id (user_id),
    KEY group_leader (group_leader)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.