2016-03-17 2 views
1

В настоящее время я делаю модуль веб-программирования в университете и испытываю проблемы с некоторыми домашними заданиями. Мы должны вставить код, который обновляет нашу текущую таблицу mysql с новой информацией (пол, возраст, адрес электронной почты, комментарий). Эта информация должна быть вставлена ​​в строку каждого сгенерированного сеанса идентификатора (currID). Как мы кодируем обновленную информацию, которая будет вставлена ​​в строку, относящуюся к сеансу?Обновление таблицы mysql с информацией, генерируемой сессией

<?php 
session_start(); 
include('muqHeader.html'); 
include('commonSrc.php'); 
include('../shareCode/mysqlLink.php'); 

if ($_SERVER['REQUEST_METHOD'] == 'POST'): 
// update the mf record 

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){ 
}else{ 
    echo "Not a valid email address"; 
} 

if(filter_var($_POST['comment'], FILTER_SANITIZE_STRING)){ 
}else{ 
    echo "Text includes invalid characters"; 
} 

$gender = $_POST['gender']; 
$age = $_POST['age']; 
$email = $_POST['email']; 
$comment = $_POST['comment']; 
$currID = $_SESSION['currID']; 

if ($_POST['submit']){ 
$sql = "UPDATE muq 
     SET (gender='$gender', age = '$age', email = '$email', comment =     '$comment') 
     WHERE (muqID = '$currID')"; 
} 

    if (@mysqli_query($link, $sql)) { 
echo "Record updated successfully"; 
} else { 
echo "Error updating record: " . @mysqli_error($link); 
} 

else: 

$useTime = implode(',', $_SESSION['useTime']); 
$usedM = implode(',', $_SESSION['usedM']); 
$tmp = array(); 
for($i=0; $i < count($_SESSION['freqRate']); $i++) { 
$tmp[$i] = implode('', $_SESSION['freqRate'][$i]); // empty string as  'glue' 
} 
$freqRate = implode(',', $tmp); 
$dateTime = $_SESSION['dateTime']; 
$taskTime = (time() - $_SESSION['startTime'])/60; //in minutes 
$sql = "INSERT INTO muq 
    (dateTime, taskTime, useTime, usedM, freqRate) 
    VALUES ('$dateTime', '$taskTime', '$useTime', '$usedM', 'freqRate')"; 
$link = connectDB(); 
@mysqli_query($link, $sql); 
$_SESSION['currID'] = @mysqli_insert_id($link); 
@mysqli_close($link); 

?> 
+0

Что такое значение $ _SESSION [ 'currID'] –

+0

также из-за $ _SESSION [ 'currID'] = @mysqli_insert_id ($ ссылка) Я полагаю, хотя это то, что нужно, что было бы номер идентификатора участника? Я точно не знаю, что это за номер, так как он равен +1 от идентификационного номера предыдущего участника. мне сказали, что мне нужно «написать соответствующий код для обновления записи по полу, возрасту, электронной почте и комментариям». –

ответ

0

Ну, прежде чем answearing ваш вопрос, здесь есть некоторые правила кодирования, которые необходимо соблюдать: 1- Вы не должны использовать больше строк, чем то, что вам нужно. Это означает, что вам не нужно делать пустую «если», используя 4 строки, если вы можете сделать это в 2 строках. Пример: Вместо:

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){ 
}else{ 
    echo "Not a valid email address"; 
} 

Вы можете сделать:

if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) 
    echo "Not a valid email address"; 

Вторая вещь, чтобы обновить строку в базе данных, вам нужен ID. Это ключ, который вы собираетесь использовать, чтобы сообщить вашему движку db, какую строку вы собираетесь обновлять, потому что если «он» не будет знать, какую строку «он» должен обновить (я рассматриваю механизм db как человек вроде меня и вы: D) Итак, вам нужно ввести этот ключ (идентификатор учетной записи или что-то еще) в свой сеанс, чтобы позднее использовать его при обновлении базы данных, сообщая вам, что движок db «ему» необходимо обновить эту строку, указанную этим ключом ,

+0

ах большое спасибо, я удалил любой ненужный код, который я могу найти, но, боюсь, я не знаю, как ввести ключ ID в свой код? Думаю, я думал, что вставка $ currID = $ _SESSION ['currID']; был способ обойти это, поэтому я нахожу его немного запутанным! currID должен быть идентификационным номером лица, завершившего опрос, который увеличивается на 1 для каждого нового завершения опроса. –

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