2013-02-10 4 views
0

Я пытаюсь добавить пользователя в таблицу моих пользователей, форма запрашивает имя пользователя и просит пользователя выбрать менеджера из выпадающего списка. Я хотел бы заполнить существующих менеджеров из столбца manager_id в таблице менеджеров. Однако я понятия не имею, как это сделать. это мой код до сих пор:как заполнить выпадающий список значений из mysql

<?php 

if (isset($_POST['add'])) { 
require_once 'login.php'; 

    $OK = false; 

    $conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed"); 

    $stmt = $conn->stmt_init(); 

    $sql = 'INSERT INTO users (user_name, user_manager, user_creation_date) 
      VALUES(?, ?, NOW())'; 
    if ($stmt->prepare($sql)) { 

    $stmt->bind_param('ss', $_POST['user_name'], $_POST['user_manager']); 

    $stmt->execute(); 
    if ($stmt->affected_rows > 0) { 
     $OK = true; 
    } 
    } 

    if ($OK) { 
    header('Location: add_user_confirm.php'); 
    exit; 
    } else { 
    $error = $stmt->error; 
    } 
} 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 

<title>Add new user</title> 
</head> 

<body> 
<h1>Add new user</h1> 
<?php if (isset($error)) { 
    echo "<p>Error: $error</p>"; 
} ?> 
<form id="form1" method="post" action=""> 
    <p> 
    <label for="user_name">user name:</label> 
    <input name="user_name" type="text" class="widebox" id="user_name"> 
    </p> 
    <p> 
    User manager: <select name="user_manager" size "1"> 

    </p> 
    <p> 
    <input type="submit" name="add" value="add_user" id="add"> 
    </p> 
</form> 
</body> 
</html> 

Моя таблица "менеджеров выглядит следующим образом: manager_id | manager_name | manager_dept

Помогло ли кто-нибудь помочь? Заранее спасибо

+0

Схема таблицы общего доступа таблицы менеджеров. – SparKot

+0

@DoSparKot Таблица «Мои менеджеры» выглядит так: manager_id | manager_name | manager_dept – elmify

ответ

2

Что-то, как это должно работать

<p> 
    User manager: <select name="user_manager" size "1"> 
    <?php $stmt->close(); 
    $stmt2 = $conn->stmt_init(); 
    $selectQ = 'select * from managers'; 
    $stmt2->prepare($selectQ); 
    $stmt2->execute(); 
    $result = $stmt2->get_result(); 
    while($resultRow = $result->fetch_array(MYSQLI_ASSOC)) 
     echo '<option value="$resultRow[manager_id]">$resultRow[manager_name]</option>'; 
    $result->close(); 
    $stmt2->close(); 
    ?> 
</p> 
+0

спасибо за это, но когда я добавлю это в свой код, вы получите сообщение об ошибке: синтаксическая ошибка, неожиданный $ end в C: \ xampp \ htdocs \ users \ add_users.php в строке 49 -> вот где у меня есть мой tag – elmify

+1

Извините. Я оставил блок открытым. Исправлено: – Achrome

+0

Спасибо большое, что исправил проблему, однако она не показывает anydata, хотя у меня есть некоторые. – elmify

0

Ниже приведен пример добавления пользователя.

/** 
* Storing new user 
* returns user details 
*/ 
public function storeUser($name, $email, $password) { 
    $uuid = uniqid('', true); 
    $hash = $this->hashSSHA($password); 
    $encrypted_password = $hash["encrypted"]; // encrypted password 
    $salt = $hash["salt"]; // salt 
    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())"); 
    // check for successful store 
    if ($result) { 
     // get user details 
     $uid = mysql_insert_id(); // last inserted id 
     $result = mysql_query("SELECT * FROM users WHERE uid = $uid"); 
     // return user details 
     return mysql_fetch_array($result); 
    } else { 
     return false; 
    } 
} 

Помните, что вы не хотите, чтобы сохранить пароль в виде оригинальной, следовательно, функция $salt и hashSSHA. перечисленные ниже.

/** 
* Encrypting password 
* @param password 
* returns salt and encrypted password 
*/ 
public function hashSSHA($password) { 

    $salt = sha1(rand()); 
    $salt = substr($salt, 0, 10); 
    $encrypted = base64_encode(sha1($password . $salt, true) . $salt); 
    $hash = array("salt" => $salt, "encrypted" => $encrypted); 
    return $hash; 
} 

/** 
* Decrypting password 
* @param salt, password 
* returns hash string 
*/ 
public function checkhashSSHA($salt, $password) { 

    $hash = base64_encode(sha1($password . $salt, true) . $salt); 

    return $hash; 
} 

Эти функции помогут сохранить безопасность. также если вы хотите узнать больше об этом или просмотреть весь API и весь его код, пожалуйста, посетите here

Смежные вопросы