2017-09-27 1 views
0

Je souhaite insérer mon ID utilisateur dans la table Adventure Base sur laquelle l'utilisateur se connecte. mais le problème est que je ne reçois jamais la valeur de l'utilisateur connexion la valeur est toujours NULLcomment insérer un ID de clé étrangère lorsque je me connecte à une autre table CODEIGNETER

c'est la page d'erreur:

Numéro d'erreur: 1048

Colonne « user_id » ne peut pas être nulle

INSERT INTO adventure (name, category, place, state, user_id) VALUES ('asd', 'gunung', 'asd', 'asd', NULL)

Nom du fichier: C: /xampp/htdocs/login-ci/system/database/DB_driver.php

Numéro de ligne: 691

et ceci est mon modèle

public function getUserId() 
    { 
     return $this->session->users['user_id']; 
    } 

ceci est mon contrôleur

public function addTrip(){ 
     $this->load->model('userModel'); 
     $user_id = $this->session->users['user_id']; 

     $newTrip = ['name' => $this->input->post('name'), 
        'category' => $this->input->post('category'), 
        'place' => $this->input->post('place'), 
        'state' => $this->input->post('state'), 
        'user_id' => $this->input->$user_id 
        ]; 


     $this->db->insert('adventure',$newTrip); 
     // $this->db->insert('adventure',$data); 

     redirect('userController/profile'); 
    } 

s'il vous plaît quelqu'un me dire si quelque chose me manque dans mon code, merci beaucoup

+0

Avez-vous essayé: ' 'user_id' => GetUserID()' à la place? –

+0

copie de: - https://stackoverflow.com/questions/46430501/codeigniter-how-to-insert-user-id-to-mysql-when-that-user-id-is-logged-in –

+0

J'ai essayé @ JorgeCampos et toujours la même valeur était NULL – huamgg

Répondre

1

Vous avez un problème dans la création de tableau pour insérer. changer votre code comme:

$user_id = $this->session->users['user_id']; 
$newTrip = ['name' => $this->input->post('name'), 
        'category' => $this->input->post('category'), 
        'place' => $this->input->post('place'), 
        'state' => $this->input->post('state'), 
        'user_id' => $user_id // You already have $user_id from session 
        ]; 
+0

même erreur fixe La colonne 'user_id' ne peut pas être nulle – huamgg

+0

Est-ce que votre user_id est stocké en session? –

+0

oui il est, quand je vérifie sur la vue je peux obtenir la session de nom d'utilisateur, mais quand je veux obtenir le user_id et insérer à mySQL est toujours – huamgg

0

Si vous avez enregistré ID utilisateur en session, alors ce sont les 3 possibles pour obtenir votre valeur de session.

1) $user = $_SESSION['user_id']; 
2) $user = $this->session->user_id; 
3) $user = $this->session->userdata('user_id); 

Pour plus de détails vous pouvez visites ici: https://codeigniter.com/userguide3/libraries/sessions.html

+0

après avoir essayé avec que mon user_id n'a pas été stocké seul nom d'utilisateur cela a été stocké, donc besoin de savoir comment stocker mon user_id maintenant. Merci – huamgg