Check username in MySQL database

Status
Niet open voor verdere reacties.

BZilla

Gebruiker
Lid geworden
16 apr 2014
Berichten
170
Beste allen.

Ik wil gaan werken met rechten. Wanneer de username in de database staat, moet hij de read en write rechten hebben.
Staat de username niet in de database, dat moet hij alleen de read rechten hebben.

Ik controlleer de username met get_current_user().

Daarna heb ik als test een klein stukje code gemaakt om te kijken of mijn manier van denken zou werken. Dat doet het dus niet..

PHP:
$name = get_current_user();

$checkUsername = mysql_query("select count(*) as total from `database` WHERE `username` = '".$name."'",$link); 

while ($username = mysql_fetch_assoc($checkUsername))
{
	echo $username["total"];
	echo "<br>";
}
if($checkUsername != 0)
{
	echo 'Je hebt rechten';
}
else
{
	echo 'Je hebt geen rechten';
}

De return waarde van $username["total"] is de regelnummer van de plek in de database.
Wanneer je niet in de database staat is deze dus 0.

Op een of andere manier, returnt hij de waarde goed (1 of 2 of 3 etc.) maar in de if blijkt dit altijd 0 te zijn.
Iemand enig idee hoe ik dit kan oplossen?

Als iets niet duidelijk is hoor ik het graag,
bij voorbaat dank

BZilla
 
Dus als ik je verhaal goed begrijp:
username['total'] is het regelnummer
Vervolgens controleer je checkusername of het regelnummer klopt?
Zou je hier niet username['total'] moeten controleren?
 
Bedankt voor de snelle reactie.
Door je reactie zie ik dat ik niet de oorspronkelijke code heb neergezet.
Mijn eerste idee was ook username['total'], dit werkt ook niet. Ook dan krijg ik altijd '0' terug bij de if.
 
Waarom niet gewoon mysql_num_rows gebruiken dan? Zonder je echte code is niet goed op te maken waarom het niet werkt, maar bovenstaande gaat inderdaad iig niet werken.
 
Hoe ga ik dit dan toepassen?

En wat bedoel je met echte code?
Ik kan je wel meer laten zien, maar dat is zover ik weet allemaal niet van toepassing.
 
Num_rows geeft je het aantal gevonden lijnen. meer dan 0 = in database

Je geeft zelf aan in de post dat je eerst andere code had die je ook niet werkend kreeg. Wat je nu hebt gebruikt $checkusername, wat een link is naar database informatie, niet de informatie zelf
 
$checkUsername geeft aan of de query gelukt is.
Is de query gelukt dan is $checkUsername true,
is de query niet gelukt dan is $checkUsername false.
Een boolean dus.

Dit geeft nog niet aan hoeveel records er gevonden zijn in de query.

Wanneer je wilt weten hoeveel records er gevonden zijn met die gebruikersnaam dan gebruik je MySQL_num_rows($checkUsername) . Wanneer dit een resultaat geeft hoger dan nul dan is de gebruikersnaam gevonden in de database.

De count kun je weghalen uit de query.

"SELECT * FROM `database` WHERE `username` = '".$name." ' " zou genoeg moeten zijn.
 
gast0158 dankjewel voor je reactie en de uitleg erbij :)
Dit werkt inderdaad prima ^^

De werkende code :

PHP:
$checkUsername = mysql_query("select * from `database` WHERE `username` = '".$name."'"); 

if( MySQL_num_rows($checkUsername) > 0)
{
	echo 'Je hebt rechten';
}
else
{
	echo 'Je hebt geen rechten';
}

Nogmaals bedankt :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan