[PHP/SQL] function voor rank
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?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
?>
// 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:
Code (php)
Kan iemand mij uitleggen wat ik verkeerd doe??
Ik krijg verder ook helemaal geen fout te zien of wat..
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.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/**
Function for rank check
*/
function getinfo($login) {
if ($login != '' && ctype_digit($login)) {
$sql = "SELECT rank
FROM users
WHERE id='".mysql_real_escape_string($login)."'";
if ($result = mysql_query($sql)) {
if (mysql_num_rows($result) == 1) {
if ($row = mysql_fetch_assoc($result)) {
return $row['rank'];
}
}
}
}
return false;
}
?>
/**
Function for rank check
*/
function getinfo($login) {
if ($login != '' && ctype_digit($login)) {
$sql = "SELECT rank
FROM users
WHERE id='".mysql_real_escape_string($login)."'";
if ($result = mysql_query($sql)) {
if (mysql_num_rows($result) == 1) {
if ($row = mysql_fetch_assoc($result)) {
return $row['rank'];
}
}
}
}
return false;
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
require_once 'functions.php';
if (isset($_SESSION['id'])) {
if (($rank = getinfo($_SESSION['id'])) !== false) {
echo $rank;
}
}
?>
ini_set('display_errors',1);
error_reporting(E_ALL);
session_start();
require_once 'functions.php';
if (isset($_SESSION['id'])) {
if (($rank = getinfo($_SESSION['id'])) !== false) {
echo $rank;
}
}
?>
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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
?>
// 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 =þ
Nog een fijne 2e kerstdag allen