2015-03-29 2 views
1

Я хочу сохранить значения переключателей для каждого вопроса в моей базе данных. Я запустил его и сохранил только для первого вопроса. Я знаю, что это может быть неправильно, используя if и elseif. Пользователь отвечает во всех вопросах, как я могу хранить их все в таблице mysql? Нужно ли использовать цикл for?Не удается сохранить несколько значений переключателей в php и mysql

saveunit.php 
    <?php 

    include'connect.php'; 


    if(isset($_POST['u1'])){ 
    $u1 = $_POST['u1']; 
    mysql_query("INSERT INTO unit_form (u1) VALUES ('$u1')"); 
} 
    elseif(isset($_POST['u2'])){ 
    $u2 = $_POST['u2']; 
    mysql_query("INSERT INTO unit_form (u2) VALUES ('$u2')"); 
} 

?> 


unitform.php 

<form action="saveunit.php" method="POST"> 

U1 I have found the unit intellectually interesting and stimulating : <br /> 
1 <input type="radio" name="u1" value="1"> 2 <input type="radio" name="u1" value="2"> 3 <input type="radio" name="number" value="u1"> 4 <input type="radio" name="u1" value="4"> 5 <input type="radio" name="u1" value="5"> <br /> <br /> 

U2 I have gained knowledge that I consider valuable : <br /> 
1 <input type="radio" name="u2" value="1"> 2 <input type="radio" name="u2" value="2"> 3 <input type="radio" name="u2" value="3"> 4 <input type="radio" name="u2" value="u2"> 5 <input type="radio" name="u2" value="5"> <br /> <br /> 

U3 I have acquired skills and abilities that I consider valuable : <br /> 
1 <input type="radio" name="u3" value="1"> 2 <input type="radio" name="u3" value="2"> 3 <input type="radio" name="u3" value="3"> 4 <input type="radio" name="u3" value="4"> 5 <input type="radio" name="u3" value="5"> <br /> <br /> 


<input type = "Submit" name = "Submit1" value = "Submit"> 
<input type="reset" name="reset" value="Clear"> 

+0

Это не имеет смысла использовать 'elseif' в PHP части кода. 'u1', вероятно, всегда задан, поэтому вы не сможете каждый раз оценивать' u2'. Просто используйте обычный 'if()' вместо этого, то же самое для 'u3' ... – arkascha

+0

О, и побочное примечание: ваш код уязвим для SQL-инъекции. Это серьезная угроза безопасности для вашей системы. Вы должны это исправить, никаких оправданий. Прекратите использовать устаревшее расширение 'mysql', начните использовать более современное расширение' mylsqi' или 'PDO' и прочитайте о преимуществах« подготовленных операторов »для этого. – arkascha

ответ

0

Я не думаю, что вам нужно, если и еще если. Он хранит u1, потому что он всегда выполняет первый if(), поэтому он всегда сохраняет первые данные. Что вам нужно сделать, так это иметь все единицы в одном, если(). Попробуйте это ...

if(isset($_POST['u1'])){ 
    $u1 = $_POST['u1']; 
    $u2 = $_POST['u2']; 
    $u3 = $_POST['u3']; 
    $u4 = $_POST['u4']; 
    $u5 = $_POST['u5']; 
    mysql_query("INSERT INTO unit_form (u1,u2,u3,u4,u5) VALUES ('$u1','$u2','$u3','$u4','$u5')"); 
} 
Смежные вопросы