Ik heb een kleine functie geschreven om de rang van een gebruiker uit de database op te vragen en te returne.
Maar het werkt helaas niet.
Ik krijg helemaal geen fout of wat te zien. Hier de functie in de class:
<?php
// Function for rank check
function getinfo($login)
{
$login = $login;
$sql = mysql_query("SELECT rank FROM users WHERE id='".mysql_real_escape_string($login)."'") or die(mysql_error());
$info = mysql_fetch_array($sql);
return $info['rank'];
}
// end of
?>
En hier hoe ik hem wou teste in een test file:
<?php include ("includes/header.php"); ?>
<?php
echo 'tja';
echo getinfo($_SESSION['id']); //Hier moet in dit geval admin komen te staan.
?>
<?php include ("includes/footer.php"); ?>
Kan iemand mij uitleggen wat ik verkeerd doe??
Ik krijg verder ook helemaal geen fout te zien of wat..
Om te beginnen, wat is het nut van regel 5 uit je eerste stukje code? Sloop die er gewoon uit, hij doet niets...
Waar controleer je verder of er wel resultaten opgehaald zijn uit de database. Wellicht dat er voor de opgegeven $login helemaal geen gegevens beschikbaar zijn?
En daarop aansluitend: weet je zeker dat $_SESSION['id'] de juiste waarde bevat? En zo ja dan lijkt het mij hier om een id te gaan terwijl je functie een $login (== username?) nodig heeft?
Kortom, bouw eens wat meer controles in en echo eens wat variabelen om te zien of ze daadwerkelijk bevatten wat jij denkt dat ze bevatten...
ps. Misschien overbodig, maar je hebt toch wel de file waarin die functie staat geinclude in je test file? Je moet er natuurlijk wel voor zorgen dat die functie beschikbaar is.
@blanche,
Dan zou hij toch de error undefined function terug krijgen =þ
Voor de rest is een die die extreem overbodig.
Ten tweede zou ik nog een Limit 1 in de queryu gooien, zodat je ook geen vreemde dingen terug krijgt in je $info
Ik zou er zoiets van maken:
<?php
// Function for rank check
function getinfo($login)
{
$login = mysql_real_escape_string($login);
$sql = mysql_query("SELECT rank FROM users WHERE id='". $login ."'");
if(!$sql)
{
$return = "Er is iets mis gegaan met het ophalen van de gegevens";
}
else
{
$info = mysql_fetch_array($sql);
$return = $info['rank'];
}
return $return;
}
// end of
?>
En dan moeten er nog wel een paar controlles in, maar ik ga op Familie bezoek, dus heb nu even geen tijd meer =þ