2013-07-22 5 views
0

Im используя этот код:PHP/MySQL вставить несколько строк в таблицу

<?php 
if(isset($_POST["submit"])) 
{ 
    $num = $_POST['number']; 
    for ($i = 0; $i < $num; $i++) 
    { 
     if($i==0) 
     { 
      echo '0'; 
      $answer1 = $_POST["answer1"]; 
      $answer2 = $_POST["answer2"]; 
      $answer3 = $_POST["answer3"]; 
      $answer4 = $_POST["answer4"]; 
      $answer5 = $_POST["answer5"]; 
      $answer6 = $_POST["answer6"]; 
      $answer7 = $_POST["answer7"]; 
      $answer8 = $_POST["answer8"]; 
     } 
     else 
     { 
      echo 'no 0'; 
      $answer1 = $_POST["answer1$i"]; 
      $answer2 = $_POST["answer2$i"]; 
      $answer3 = $_POST["answer3$i"]; 
      $answer4 = $_POST["answer4$i"]; 
      $answer5 = $_POST["answer5$i"]; 
      $answer6 = $_POST["answer6$i"]; 
      $answer7 = $_POST["answer7$i"]; 
      $answer8 = $_POST["answer8$i"]; 
     } 
     //then insert the line items into the lineitems table with the bill sequence from the adhocbills table 
     $sql="INSERT into surveys_completed (survey_sequence, question_seq, answer1, answer2, answer3, answer4, answer5, answer6, answer7, answer8) values ('".$_POST["survey_sequence"]."', '".$_POST["question_seq"]."', '".$answer1."', '".$answer2."', '".$answer3."', '".$answer4."', '".$answer5."', '".$answer6."', '".$answer7."', '".$answer8."')"; 
     $rs=mysql_query($sql,$conn) or die(mysql_error()); 
     echo $sql.'<br><br>'; 
    } 
} 
?> 

<?php 
/* 
if(mysql_real_escape_string($_GET["string"]) == '') 
{ 
    echo 'No Survey was selected'; 
    exit(); 
} */ 
if(mysql_real_escape_string($_GET["company"]) != '') 
{ 
    //sql for company 
    $sql="SELECT * from surveys where company = '".mysql_real_escape_string($_GET["company"])."' and string = '".mysql_real_escape_string($_GET["string"])."' "; 
} 
elseif(mysql_real_escape_string($_GET["string"]) != '') 
{ 
    //sql for string 
    $sql="SELECT * from surveys where string = '".mysql_real_escape_string($_GET["string"])."' "; 
} 
$rs=mysql_query($sql,$conn) or die(mysql_error()); 
$survey=mysql_fetch_array($rs); 

echo '<h3>'.$survey["title"].'</h3>'; 
?> 
<form method="post" action="/home.php?id=surveys/complete_survey"> 
<table width="600" border="0" cellspacing="5" cellpadding="5"> 
<?php 
$sql2="SELECT * from surveys_questions where survey_seq = '".$survey["sequence"]."' "; 
$rs2=mysql_query($sql2,$conn) or die(mysql_error()); 
$counter=0; 
while($survey_questions=mysql_fetch_array($rs2)) 
{ 
    $counter++; 
    ?> 
     <tr> 
     <td colspan="2"><strong><?php echo $counter; ?>. <?php echo $survey_questions["question"]; ?></strong> 
     COUNTER<input type="text" name="number" id="number" value="<?php echo $counter; ?>" /> 
     SURVEY<input type="text" name="survey_sequence" id="survey_sequence" value="<?php echo $survey["sequence"]; ?>" /> 
     QUESTION<input type="text" name="question_seq" id="question_seq" value="<?php echo $survey_questions["sequence"]; ?>" /></td> 
     </tr> 
     <tr> 
     <td><?php if($survey_questions["answer1"] != '') { echo '<input type="checkbox" name="answer1'.$counter.'" value="Y" /> '.$survey_questions["answer1"]; } ?></td> 
     <td><?php if($survey_questions["answer2"] != '') { echo '<input type="checkbox" name="answer2'.$counter.'" value="Y" /> '.$survey_questions["answer2"]; } ?></td> 
     </tr> 
     <tr> 
     <td><?php if($survey_questions["answer3"] != '') { echo '<input type="checkbox" name="answer3'.$counter.'" value="Y" /> '.$survey_questions["answer3"]; } ?></td> 
     <td><?php if($survey_questions["answer4"] != '') { echo '<input type="checkbox" name="answer4'.$counter.'" value="Y" /> '.$survey_questions["answer4"]; } ?></td> 
     </tr> 
     <tr> 
     <td><?php if($survey_questions["answer5"] != '') { echo '<input type="checkbox" name="answer5'.$counter.'" value="Y" /> '.$survey_questions["answer5"]; } ?></td> 
     <td><?php if($survey_questions["answer6"] != '') { echo '<input type="checkbox" name="answer6'.$counter.'" value="Y" /> '.$survey_questions["answer6"]; } ?></td> 
     </tr> 
     <tr> 
     <td><?php if($survey_questions["answer7"] != '') { echo '<input type="checkbox" name="answer7'.$counter.'" value="Y" /> '.$survey_questions["answer7"]; } ?></td> 
     <td><?php if($survey_questions["answer8"] != '') { echo '<input type="checkbox" name="answer8'.$counter.'" value="Y" /> '.$survey_questions["answer8"]; } ?></td> 
     </tr> 
    <?php 
} 
?> 
<tr> 
    <td colspan="2"><input type="submit" name="submit" id="submit" value="Complete Survey" /> 
</tr> 
</table> 
</form> 

Так что может быть разное количество вопросов, каждый раз, когда я нужен способ, чтобы сделать их вставить в базу данных (один вопрос в строке)

Есть 3 таблицы:

исследования
surveys_questions
surveys_completed

survey_completed Таблица содержит ответы всех пользователей.

любые идеи?

+3

У вас серьезные проблемы с планировкой стола. – Prix

+0

Это не сработает, вам нужно использовать отношение «один ко многим» ко второй таблице. – ikromm

+0

1. Нормализовать данные – Strawberry

ответ

0

Поместите ответы в массив и взорвите их в запросе. Имена столбцов в запросе могут быть сгенерированы на основе количества номеров в массиве.

Другой вопрос: избегайте mysql_* -функций, используйте mysqli или PDO, так как mysql будет устаревшим.