Ben nu bezig met een project. Moet een helpdeskapplicatie ontwikkelen, en kom nu met een probleempje te zitten bij het inlogsysteem.
Ik wil aan de gebruikersnaam kunnen zien van welke organisatie iemand afkomt, zodat deze alleen de gegevens kan zien van zijn eigen organisatie, dit met behulp van een sessie
Het inloggen etc gaat allemaal perfect, alleen de query klopt niet helemaal, kan iemand mij hiermee helpen?
De fout zit in het volgende stukje;
$gegeven2 = mysql_fetch_array(mysql_query("SELECT organisaties.id FROM login ,organisaties WHERE organisaties.id = login.organisatie AND login.username ='". $gegeven ."'"));
if(mysql_num_rows($result) == 1){
Hoe kom je aan de variabele $result? In dit stukje komt die hele variabele niet voor en zal die dus ook nooit gelijk zijn aan 1. Dit heeft weer als gevolg dat je sessievariabele niet aangemaakt wordt.
Kenneth, dat is ook de oplossing niet, aangezien $gegeven2 het resultaat van mysql_fetch_array() is. En mysql_num_rows() moet je immers toepassen op het resultaat van een mysql_query().
Het beste is nog om alles gewoon te splitsen:
<?php
$sql = // je sql query
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
?>
Naast het probleem met de ultra-compacte code, heeft mijn naamgenoot ook nog eens de basis van programmeren vergeten: Foutafhandeling...
Alles wat fout kan gaan, zal ook fout gaan! Die garantie heb je.
Kortom, overal controleren of de vorige actie wel correct is uitgevoerd, of variabelen wel bestaan, een inhoud hebben, de juiste inhoud hebben, etc. etc.
Begin je scripts ook eens met de volgende regels:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
// rest van je script
?>
Vervolgens ga je alle errors en waarschuwingen 1-voor-1 oplossen.