Als ik het volgende script op mijn site zet:
<?php
$idsql = "SELECT id FROM users WHERE login = $_SESSION[login]";
$id = mysql_query($idsql);
?>

en roep nu $id aan via:

<?php echo($id);?>

doet het het niet. In welk script zit een fout?
Is die sessie login dan wel geset?
<?
# En het moet trouwens zo :)
$idsql = "SELECT `id` FROM `users` WHERE `login` = '" . $_SESSION['login'] . "'";
?>
Als ik het nu doe:
<?
$idsql = "SELECT `id` FROM `users` WHERE `login` = '" . $_SESSION['login'] . "'";
$id = mysql_query($idsql); ?>

<?php echo("" . $id . "\n");?>

dan komt er te staan: Resource id #9

Terwijl die login id nummer 1 heeft!

Login en wachtwoord zijn opgeslagen in de sessies
omg jonge, je kunt toch niet het id nummer krijgen via mysql_query()?? zag je deze fout al eerder maken..

nogmaals:

<?
$idsql = "SELECT `id` FROM `users` WHERE `login` = '" . $_SESSION['login'] . "'";
$res = mysql_query($idsql);

//-- kijk of er wel results zijn
//-- dit wordt dus aangegeven door
//-- Resource id #9 in dit geval
//-- dit betekend dat er resultaat is
//-- en dat de query is goed gegaan
if (mysql_num_rows($res) >= 1)
{
$id = mysql_result($res, 0);
}

echo "id nummer: " . $id . "<br />";
?>

ik gebruik mysql_result() nu omdat er slechts 1 kolom is geselecteerd in de query.. bij 2 of meer kolommen gewoon mysql_fetch_array() gebruiken, tenzij je liever dit gebruikt..

als je 2 of 3 kolommen selecteert kun je mysql_result() zo gebruiken:

<?
$kol1 = mysql_result($res, 0); // eerste
$kol2 = mysql_result($res, 0, 1); // tweede
$kol3 = mysql_result($res, 0, 2); //derde
?>

gewoon dus mysql_fetch_array() gebruiken want je ziet dat dit veel typwerk is met slechts 3 kolommen, dan is mysql_fetch_array() een stuk minder werk..

Reageren