Array waarden defineren

  • Onderwerp starter Onderwerp starter moh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

moh

Gebruiker
Lid geworden
6 apr 2007
Berichten
34
Code:
if (isset($_COOKIE["cookienaam"])) {
    $username = $_COOKIE["cookienaam"];

$qry = "SELECT tabel1.user, tabel1.permission, tabel2.id, tabel2.rank
				FROM tabel1, tabel2 
				WHERE tabel1.user = '".$username."'., tabel1.permission = tabel2.id";
$res = mysql_query($qry) OR die(mysql_error($qry));

	while($permis = mysql_fetch_array($res)){
		



} else {
	echo "guest";
}

Er zit vast wel een fout in de qry maar kom er niet uit.

In de cookie staat een $username deze moet hij vergelijken in een tabel1: user.
in tabel1 staat een rij met een id nummer van tabel2 in tabel2 vind je een rank die de user krijgt toegewezen.

is de qry juist? zo niet wat zou ik moeten aanpassen en is het correct om een array uit te voeren?

want het gaat erom dat elke rank iets anders krijgt weer gegeven. ik had in gedachten zoals boven om dit te doen:

Code:
while($permis = mysql_fetch_array($res)){

if ($permis[3] = ranknaamdummy1){
echo "hallo dummy 1";
}
if ($permis[3] = ranknaamtest{
echo "hallo ongwenst element";
}

of is dit geen logica :)

Mijn rank in php kennis = iq van een visstick
alvast bedankt
 
Laatst bewerkt:
PHP:
if (isset($_COOKIE["cookienaam"])) {
    $username = $_COOKIE["cookienaam"];

$qry = "SELECT tabel1.user, tabel1.permission, tabel2.id, tabel2.rank
				FROM tabel1, tabel2 
				WHERE tabel1.user = '".$username."'., tabel1.permission = tabel2.id";
$res = mysql_query($qry) OR die(mysql_error($qry));

	while($permis = mysql_fetch_array($res)){
		



} else {
	echo "guest";
}

Daar vergeet je in ieder geval de while af te sluiten. Dat klopt alvast niet. Daarnaast zie ik niet echt een probleem in je query.

Misschien kun je nog even wat screenshots posten van je tabellen in PHPMyAdmin posten.
 
een while afsluiten ok erhm misschien weet ik even te weining van de while statement :)

Het is vrij simpel het is eigenlijk een klein voorbeeld dat ik groter ga uitwerken.

Tabel1: user

ID naam permis_ID
1 administrator 1
2 user 2
3 gast 3

tabel2: permissions

ID rank
1 admin
2 member
3 guest


Goed in de cookie staat dus de username in dit geval dan van tabel1 user: 1 van de 3 velden van naam.

Bedoeling is dat deze user een permis_id heeft die gelijk is aan tabel2 permissions ID
vanhieruit wil ik kijken naar welke rank hangt erachter? als het een admin is dan mag hij dit zien echo ADMINDATA

OF is het een member echo MEMBERDATA als ik deze kleine ding snap dan kan ik ook makklijker verder komen door meer rijen te maken bij permissions tabel voor gegevens die ze wel of niet mogen aanpassen of wat mogen ze zien etc :)

uiteindelijk lijkt het mij niet de bedoeling door te zeggen if permis_id = xxx maar juist kijken in een andere tabel niet dezelfde :)
 
Laatst bewerkt:
PHP:
$qry = "SELECT rank 
       FROM table2 
       WHERE id = (
         SELECT permis_ID 
         FROM table1 
         WHERE naam = '" . $_COOKIE[ 'cookienaam' ] . "'
       )";

Ik denk dat het zo wel moet werken, hoewel ik verder geen ervaring heb met nested queries.

Ik ben er nu vanuit gegaan dat je velden ook daadwerkelijk zo heten als in het overzicht van je tabellen. Niet zoals in je vorige code-voorbeeld.

[EDIT]
En voor het weergeven doe je dan:

PHP:
  $rData = mysql_query ( $qry );
  $aData = mysql_fetch_assoc ( $rData );
  echo $aData[ 'rank' ];
[/EDIT]
 
Laatst bewerkt:
Je zit er heel dichtbij.

Nu laat hij dus zien welke rank gekoppeld is onder permis_id in de user tabel.

Maar ik wil niet iets opzoeken of zien. ik wil zeggen ALS "xxx" de rank is geef deze data weer.

Weet het even niet zo snel makkelijk uit te leggen.

Punt is cookie is opgeslagen met gebruikers naam.

De webpagina check hey cookie bestaat met een gebruikers naam bekent? ja ga naar volgende page anders onbekend guest login.

maar wat ik hier tussen wil hebben is cookie gebruikersnaam bekent ja en dit moet er tussen kijk welke rank heeft deze gebruiker hij is geautoriseerd om naar volgendepagina te gaan als ADMIN- als andere rank MEMBER geen rank guest page.
 
Ik snap vrij weinig van de laatste regels van je post, maar je kunt data weergeven afhankelijk van de rank op deze manier:

(Oude code bewaren, echo $aData[ 'rank' ]; weghalen.)

PHP:
if ( $aData[ 'rank' ] == 'admin' ) {

  echo 'Hallo, administrator!';

} elseif ( $aData[ 'rank' ] == 'member' ) {

  echo 'Hallo member';

} else {

  echo 'Hallo Gast';

}

Maar dan heb je de tweede tabel ook eigenlijk niet nodig. Dan kun je gewoon de permis_ID ppvragen en kijken, is permis_ID gelijk aan 1 of 2 of 3, of geen van allen...
 
Kijk dat zocht ik harstikke bedankt.

Ik snap wat je bedoeld dat een tweede tabel niet in dit geval nodig is.

Daarom gaf ik al aan het was eerder een kleine test. uiteindelijk maak ik een tabel met ranks en daar in maak ik meer rijen waar ik al aan ga geven dat deze rank mag updaten deleten op bepaalde gebieden dan etc. in de database.

Dat scheelt weer een stuk script :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan