Как сделать новое поле в массиве? - PullRequest
0 голосов
/ 19 октября 2011

Извините, мне пришлось снова задать этот вопрос, потому что у меня почти не было просмотров, так как это старый пост. Я отчаянно нуждаюсь в ответе. Пожалуйста, помогите мне.

У меня есть массив, который будет извлекать строки из базы данных. Но я хочу создать новую пустую строку в таблице, где, если $ row ['StudentAnswer'] равно $ row ['AnswerContent'], то новое поле (скажем, называется $ row ['StudentAnswerWeight']) = $ row ['Weight%'] else $ row ['StudentAnswerWeight'] = '0'.

Например: $ row ['Answercontent'] = Лидс (это правильный ответ на вопрос.) $ Row ['StudentAnswer'] = Лидс (это то, что студент поставил для ответа.) $ row ['weight%'] - это процент оценки за правильный ответ. Допустим, ответ для приведенного выше примера = 5% от общего количества баллов. Теперь, как приведенный выше пример показывает, что ответ учащегося соответствует правильному ответу, это означает, что в новом поле, которое я хочу создать (давайте назовем его ($ row ['StudentAnswerWeight'])), чтобы отобразить% процента ответа от ответа, который составляет 5%. Если ученик получил неправильный ответ, скажем, ученик вставил свой ответ «Манчестер». Студенческий вес должен = 0%, так как ответ неправильный. Я надеюсь, что теперь вы понимаете, чего я хочу достичь.

Разве мы не можем создать новую $ row ['...'] ($ row ['StudentAnswerWeight' - это то, что будет вызываться новой $ row ['...']) и использовать оператор if. Если $ row ['AnswerContent'] = $ row ['StudentAnswer'], то $ row ['...'] = $ row ['Weight%'] else $ row ['...'] = '0'. Я думал в том же духе, но я не мог заставить его работать, я надеюсь, что вы, ребята, можете понять это :)

Ниже приведен массив и поля таблицы в коде php:

<table border='1'>
  <tr>
  <th>Session ID</th>
  <th>Question Number</th>
  <th>Question</th>
  <th>Correct Answer</th>
  <th>StudentAnswer</th>
  <th>Correct Answer Weight</th>
  <th>Student Answer Weight</th>
  <th>Student ID</th>
  </tr>
  <?php

    while ($row = mysql_fetch_array($result)) {
            echo "
  <tr>
  <td>{$row['SessionId']}</td>
  <td>{$row['QuestionNo']}</td>
  <td>{$row['QuestionContent']}</td>
  <td>{$row['AnswerContent']}</td>
  <td>{$row['StudentAnswer']} </td>
  <td>{$row['Weight%']}</td>
  <td>{$row['StudentAnswer'] = $row['AnswerContent']}</td> 
  <td>{$row['StudentId']}</td>
  </tr>";
    }
  ?>

Спасибо

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Попробуйте это: echo ($row['StudentAnswer']==$row['AnswerContent']) ? $row['Weight%'] : '0'

в вашем примере:

<?php

    while ($row = mysql_fetch_array($result)) {
            echo "
  <tr>
  <td>{$row['SessionId']}</td>
  <td>{$row['QuestionNo']}</td>
  <td>{$row['QuestionContent']}</td>
  <td>{$row['AnswerContent']}</td>
  <td>{$row['StudentAnswer']} </td>
  <td>{$row['Weight%']}</td>
  <td>";
echo ($row['StudentAnswer']==$row['AnswerContent']) ? $row['Weight%'] : '0';
echo "</td><td>{$row['StudentId']}</td>
  </tr>";
    }
  ?>
1 голос
/ 19 октября 2011

Добавить до echo:

if ( $row['StudentAnswer'] == $row['AnswerContent'] ) {
  $row['StudentAnswerWeight'] = $row['Weight%'];
} else {
  $row['StudentAnswerWeight'] = '0';
}

И избавься от этого {$row['StudentAnswer'] = $row['AnswerContent']}.

...