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){

$_SESSION['gebruiker2'] = $gegeven2;
if ($gegeven['username'] == '') {
($gegeven2['organisaties.id'] == 'login.id');

}
header("Location: home.php");
exit();}
}}


Als ik deze sessie wil laden in een pagina wil die ten eerste niet werken. Als controle zag ik dat hij geen gegevens in die sessie ziet.

Iemand ideeen ? BVD
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.
zoals Blanche zegt:

verander

if(mysql_num_rows($result) == 1){

is in:

if(mysql_num_rows($gegeven2) == 1){
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);
?>
ja inderdaad..
ik vond ook al dat hij veel dingen tegelijk doet in 1 variabele
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.
probleem ligt alleen hier ;

$gegeven2 = mysql_fetch_array(mysql_query("SELECT organisaties.id FROM login ,organisaties WHERE organisaties.id = login.organisatie AND login.username ='". $gegeven ."'"));

na de where functie
maak eens losse dingen dan is het overzichtelijker


<?php
$sql2 = "SELECT organisaties.id FROM login ,organisaties WHERE organisaties.id = login.organisatie AND login.username ='". $gegeven ."'";

if(!$result = mysql_query($sql2){

echo 'error';
}
else
{
while($row = mysql_fetch_assoc($result){

echo $row['veld'];

}
}

?>
<?php
$gegeven2 = mysql_fetch_array(mysql_query("SELECT organisaties.id FROM organisaties, login WHERE organisaties.id = login.organisatie"));

echo $gegeven2;
?>

Als ik dit uitvoer krijg ik de tekst 'array' naar me scherm geschreven, in plaats van de werkelijke gegevens.

Zal het eens overzichtelijker maken ;)

Probeer eens print_r($gegevens2)

Reageren