geen gegevens in query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank

Frank

07/03/2007 15:22:00
Quote Anchor link
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
 
PHP hulp

PHP hulp

20/11/2024 10:18:55
 
Joren de Wit

Joren de Wit

08/03/2007 11:45:00
Quote Anchor link
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.
 
- wes  -

- wes -

08/03/2007 11:48:00
 
Kenneth Dehouwer

Kenneth Dehouwer

08/03/2007 12:38:00
Quote Anchor link
zoals Blanche zegt:

verander

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

is in:

if(mysql_num_rows($gegeven2) == 1){
 
Joren de Wit

Joren de Wit

08/03/2007 12:41:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql
= // je sql query
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
?>
 
Kenneth Dehouwer

Kenneth Dehouwer

08/03/2007 12:42:00
Quote Anchor link
ja inderdaad..
ik vond ook al dat hij veel dingen tegelijk doet in 1 variabele
 
Frank -

Frank -

08/03/2007 15:44:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?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.
 
Frank

Frank

09/03/2007 09:25:00
Quote Anchor link
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
 
Jurgen assaasas

Jurgen assaasas

09/03/2007 09:31:00
Quote Anchor link
maak eens losse dingen dan is het overzichtelijker


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];

}
}


?>
 
Frank

Frank

09/03/2007 10:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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 ;)
 
Jacco Engel

Jacco Engel

09/03/2007 10:30:00
Quote Anchor link
Probeer eens print_r($gegevens2)
 
Arjan Kapteijn

Arjan Kapteijn

09/03/2007 10:32:00
Quote Anchor link
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.
 
- wes  -

- wes -

09/03/2007 10:35:00
Quote Anchor link
@frank , doe nou even klikken

doe jezelf en ons een lol
 
Jurgen assaasas

Jurgen assaasas

09/03/2007 10:38:00
Quote Anchor link
Frank schreef op 09.03.2007 10:28:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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 ;)


best logisch, de functie heet nl ook mysql_fetch_array

je moet natuurlijk wel een key echoen.

echo $gegeven['veld'];
 
Frank

Frank

09/03/2007 10:43:00
Quote Anchor link
met succes :)
Array ( [0] => 2 [id] => 2 )

Nu wil ik alleen het getal 2 gebruiken, enig idee ?

Iedereen alvast bedankt.
 
Jacco Engel

Jacco Engel

09/03/2007 10:50:00
Quote Anchor link
$waarde = $gegevens2["id"] ;
echo $waarde
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.