Content types with a field that get data from my custom table as it said on the title, I've create a custom table named : writers (contains name,books..of writers)

To add a book, I've created also a content type that contains a form, with many textfields (book title, editor, number of pages..ect),now I want to have a list of writers (that are stored on my table : writers) to be sure that the book I'm adding is a book written by one of the writers I've on my table

I'm working on it for 2 days and I don't know how to do it, please if anyone can helps me it would be great 

P.S. I don't want to let the user write the name of the writer on the form (content type) I want to let him choose on a list

Thank you

This is my book.module (to get an item to access to the form book):

&lt;?php


function book_menu (){

$items['admin/books'] = array(
    'title' =&gt; 'books',
    'description' =&gt; 'books form',
    'title callback' =&gt; 'book_title_callback',
    'page callback' =&gt; 'system_admin_menu_block_page',
    'access arguments' =&gt; array('administer books'),
    'file' =&gt; 'system.admin.inc',
    'file path' =&gt; drupal_get_path('module', 'system'),
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('book_form')
);

  return $items;
 }

function book_permission(){
  return array(
   'administer books' =&gt; array(
   'title' =&gt; t('permissions to deal with books'),
   'description' =&gt; t('permissions to deal with books'),
 ),
  );
  }


and I have some functions..

Here we have the new function hook_update_7001 :

function book_update_7001(&amp;$sandbox){
$info = field_info_field('field_data_field_writer'); //the select list on the content type

  $result = db_query("SELECT name_writer, uid FROM {writers} ");

  $res = $result-&gt;execute();
  $options = array();
   foreach($res as $sql){
    $options[] = array(
        'uid' =&gt; $sql-&gt; uid,
        'name' =&gt; $sql-&gt; name_writer,
        );
   }
$info['settings']['allowed_values'] = $options;
field_update_field($info);
 }
Did you already try the Entity reference module? If I understand your question correctly, you could create a content type Writer and add a reference field on your Book content type. This reference field can be used to select (i.e., use the 'Select list' widget) the appropriate Writer for your Book. No need to create a custom table yourself.

With permissions you can control who's allowed to create/edit/delete each of the content types.