2015-04-19 3 views
0

Я только начал изучать php, мне нужно пройти долгий путь, но мне действительно нужна помощь в этом.PHP MySQL Как получить переменную, созданную во время цикла

У меня есть страница, где зарегистрированный пользователь может создавать задачи, и пользователь может выбрать пользователя, для которого выполнена эта задача. Мне нужно сделать запрос вставки, где я буду нужен идентификатор человека, выбранного пользователем, вошедшего в

Это код, который это выше моего HTML:.

$userId = $_SESSION['id']; 

$Users = "SELECT * FROM users"; 
$Result2 = $db->query($Users); 

if(isset($_POST['submit'])){ 
$project = $_POST['Project']; 
$task = $_POST['task']; 
$user = $_POST['User']; 
$date = $_POST['date']; 

    $query = "INSERT INTO events (projectId, userId, name, date) 
       VALUES ('','', '$task', '$date')"; 

    $result = $database->query($query); 
    echo "it worked"; 



} 

Это код в моем теге select HTML, где зарегистрированный пользователь может выбрать человека.

<?php 

while ($row2 = mysqli_fetch_assoc($Result2)) { 
     $uid = $row2['id']; 
     $name = $row2['name']; 
     $lastName = $row2['lastname']; 

     echo "<option>" . $name . " " . $lastName . " " . $uid . "</option>"; 
     } 


?> 

Проблема заключается в том, что мне нужно поставить переменную $uid, что в настоящее время в whileloop в моем HTML выберите элемент, в первом случае утверждение выше моего HTML. Я пробовал все, но я не могу понять, как это сделать. Он отлично показывает всех пользователей и их идентификационные номера, мне просто нужно их схватить и поместить в мой оператор if.

+0

http://stackoverflow.com/questions/7337743/using-a-variable-outside-of-the-while-loop-scope –

+0

Я попытался дать ему пустую переменную, а затем повторить ее, но он не работает ... – pu4cu

+1

'

ответ

0

Ваши <option> теги, безусловно, находятся в теге <select>. Вы должны указать имя для своего выбора, и это имя будет именем параметра POST, которое вы можете использовать в своем PHP-серверном коде. Кроме того, вы должны назначить атрибут значения для каждой опции.

Ваша процедура HTML печать стала

<?php 

echo '<select name="uid">'; 
while ($row2 = mysqli_fetch_assoc($Result2)) { 
     $uid = $row2['id']; 
     $name = $row2['name']; 
     $lastName = $row2['lastname']; 

     echo "<option value='".$uid."'>" . $name . " " . $lastName . " " . $uid . "</option>"; 
     } 
echo '</select>'; 

?> 

и вы PHP код на стороне сервера становятся

$userId = $_SESSION['id']; 

$Users = "SELECT * FROM users"; 
$Result2 = $db->query($Users); 

if(isset($_POST['submit'])){ 
$project = $_POST['Project']; 
$task = $_POST['task']; 
$user = $_POST['User']; 
$date = $_POST['date']; 

$uid = $_POST["uid"]; 

$query = "INSERT INTO events (projectId, userId, name, date) VALUES ('','', '$task', '$date')"; 
$result = $database->query($query); 
echo "it worked"; 
} 

Если вы изучаете PHP, я советую, чтобы правильно начать. Никогда не обращайтесь к своим суперглобальным параметрам $ _GET и $ _POST напрямую, не дезинфицируя свои входы. Используйте некоторые функции, такие как filter_input()

+0

, если вы собираетесь упомянуть о дезинфекции данных, вы могли бы хотя бы упомянуть «подготовленные заявления» и «привязку параметров», а также некоторые указания ПОЧЕМУ для этого. –

+0

Конечно, но не в этом случае. Он сказал, что учится, бесполезно давать 10-страничный ответ на такой вопрос. Может быть, он уже знает об этом, я только дал ссылку, где он может учиться по-своему. Если он хочет пойти глубже, он может открыть другой выделенный вопрос; дезинфекция материалов - это не вопрос, который вы можете обсудить быстро. – Snake

+1

Я не согласен. просто говоря «никогда не делай этого» и «всегда делай это» бесполезно без базового описания «почему». –

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