geen gegevens in query
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.
verander
if(mysql_num_rows($result) == 1){
is in:
if(mysql_num_rows($gegeven2) == 1){
Het beste is nog om alles gewoon te splitsen:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql = // je sql query
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
?>
$sql = // je sql query
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
?>
ik vond ook al dat hij veel dingen tegelijk doet in 1 variabele
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:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
// rest van je script
?>
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.
$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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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'];
}
}
?>
$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'];
}
}
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$gegeven2 = mysql_fetch_array(mysql_query("SELECT organisaties.id FROM organisaties, login WHERE organisaties.id = login.organisatie"));
echo $gegeven2;
?>
$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)
Brrr... krijg ik de rillingen van. Stel je eens voor dat ik als programmeur later met zo'n programma verder moet. Blegh... $gegeven['username'] == '' vervang je natuurlijk door een empty(), en die exit() zou in een normaal script nooit nodig hoeven zijn.
Frank schreef op 09.03.2007 10:28:
Als ik dit uitvoer krijg ik de tekst 'array' naar me scherm geschreven, in plaats van de werkelijke gegevens.
Zal het eens overzichtelijker maken ;)
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$gegeven2 = mysql_fetch_array(mysql_query("SELECT organisaties.id FROM organisaties, login WHERE organisaties.id = login.organisatie"));
echo $gegeven2;
?>
$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 ;)
best logisch, de functie heet nl ook mysql_fetch_array
je moet natuurlijk wel een key echoen.
echo $gegeven['veld'];
Array ( [0] => 2 [id] => 2 )
Nu wil ik alleen het getal 2 gebruiken, enig idee ?
Iedereen alvast bedankt.
echo $waarde