sql query controleren op een boolean waarde

Status
Niet open voor verdere reacties.

stevebravo

Gebruiker
Lid geworden
16 jan 2010
Berichten
156
Ik wil een pagina redirection laten bepalen aan de hand van of de gebruikersnaam in combinatie met het wachtwoord yes (isbeheerder) of no (isgebruiker) is...

Ik gebruik deze sql..
PHP:
$sql = "SELECT * ";
$sql .= "FROM gebruikers ";
$sql .= "WHERE gebruikersnaam= ' $gebruikersnaam ' ";
$sql .= "AND wachtwoord= ' $hashed_wachtwoord ' ";
$sql .= "AND isbeheerder = 1";

isbeheerder staat op waarde 1.. = true en dat gaat allemaal prima..

vervolgens gebruik ik deze formule...

PHP:
$resultaat_controleer_gebruiker = odbc_exec($connectie, $sql) or die (Print "result error ".odbc_error());
	
	if ($fetch = odbc_fetch_row($resultaat_controleer_gebruiker))
	{
		header("locatie.php");
	}

maar als isbeheerder 0 of -1 is.. dan moet deze dus naar een andere locatie
bedankt voor hulp
 
Laatst bewerkt:
waarom gebruik je niet num_rows().
De query zal of nul rows opleveren of 1. meer kan het niet zijn.
 
ja maar dan nog steeds.. een niet bestaand gebruikersnaam en wachtwoord zal dan worden gezien als isgebruiker toch? omdat deze altijd standaard op false staan
 
in de tabel staan meer velden die nog niet ingevuld zijn (dit gebeurd later zoals voornaam achternaam e.d.)
als ik de num_rows print.. krijg ik altijd -1.. waarom?
 
Met je query vraag je het volgende:
Selecteer alles uit tabel 'gebruikers' waar collumn gebruikersnaam gelijk is aan $gebruikersnaam en collumn wachtwoord gelijk is aan $hashed_wachtwoord en collumn isbeheer gelijk is aan 1

De record MOET voldoen aan alle 3 de voorwaards anders is er geen match.
Al word er aan 2 van de 3 voorwaards voldaan, dan voldoet hij nog niet aan de door jou gevraagde query.
resultaat is dan nul.

$sql = "SELECT * ";
$sql .= "FROM gebruikers ";
$sql .= "WHERE gebruikersnaam= ' $gebruikersnaam ' ";
$sql .= "AND wachtwoord= ' $hashed_wachtwoord ' ";
$sql .= "AND isbeheerder = 1";
 
Met je query vraag je het volgende:
Selecteer alles uit tabel 'gebruikers' waar collumn gebruikersnaam gelijk is aan $gebruikersnaam en collumn wachtwoord gelijk is aan $hashed_wachtwoord en collumn isbeheer gelijk is aan 1

De record MOET voldoen aan alle 3 de voorwaards anders is er geen match.
Al word er aan 2 van de 3 voorwaards voldaan, dan voldoet hij nog niet aan de door jou gevraagde query.
resultaat is dan nul.

$sql = "SELECT * ";
$sql .= "FROM gebruikers ";
$sql .= "WHERE gebruikersnaam= ' $gebruikersnaam ' ";
$sql .= "AND wachtwoord= ' $hashed_wachtwoord ' ";
$sql .= "AND isbeheerder = 1";


ok.. maar ik gebruik access.. dan is -1 false, en 1 volgens mij true...
met odbc_num_rows krijg ik dus nog steeds -1, en dan is nog steeds de hoofdvraag niet aan de orde.. hoe kan je de tinyint bepalen op paginalocatie?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan