2010-12-15 7 views
1

Je dois insérer un ID dans la session pour une utilisation ultérieure. La table contient l'ID, le nom d'utilisateur et le mot de passe. Pour obtenir l'ID im en utilisant:Ecrivez une ID dans une session en tant que variable

$sql = "SELECT id FROM members WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

Et en essayant de le stocker en session:

$_SESSION["id"] = $result; 

Quand im essayant d'insérer $ _SESSION [id] dans une table que je reçois la valeur de 0 (qui est la valeur par défaut que j'ai faite).

Kinda nouveau sur PHP, toute aide serait appriciated :)

+0

'var_dump ($ _ SESSION);' – zerkms

Répondre

1

vous devez chercher la valeur aswell:

$result=mysql_query($sql); 
$fetch =mysql_fetch_array($result); 
$_SESSION["id"] = $fetch["ID"]; 
+0

changez la variable $ fetch, pour quelque chose de plus approprié en fonction de votre application! – getaway

0

Toute tentative d'impression $ résultat ne permettra pas l'accès à l'information dans la ressource.

Vous devez utiliser une fonction pour accéder à la ressource retournée:

$row = mysql_fetch_assoc($result) 
$id = $row['id']; 

La bonne façon de gérer le résultat serait d'abord vérifier qu'il a une valeur quelconque, à savoir:

if (!$result) { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    $message .= 'Whole query: ' . $query; 
    die($message); 
} 
+0

Merci pour l'explication! – Skittles

0

mysql_query() returns a resource on success, or FALSE on error. Vous devez chercher les lignes de ce résultat:

$result = mysql_query("SELECT id, name FROM mytable") or die(mysql_error()); 
$row = mysql_fetch_array($result); 
if($row){ // check that there was really selected at least one row 
    $_SESSION['id'] = $row['id']; 
} 
+0

Merci beaucoup, fonctionne comme un charme! – Skittles

Questions connexes