Как объединить 3 файла в одну таблицу? - PullRequest
1 голос
/ 31 октября 2011

У меня есть тестовый скрипт, который генерирует текстовый файл с ответами.И иметь 2 текстовых файла с правильными ответами.Я хочу: 1) Объединить все файлы в одну таблицу, например:

<table>
<tr>
<td>№ of question</td>
<td>data from file 1</td>
<td>data from file 2</td>
<td>data from file 3</td>
</tr>
...
</table>

2) Я хочу заменить идентификатор в этих файлах на текст из БД (MySQL).У меня есть таблица с вопросами и ответами с похожим идентификатором (как в текстовых файлах).

Все файлы имеют структуру, такую ​​как:

1|3
2|4
3|1

где первое число - это идентификатор вопроса, а второеэто вариант ответа.

Я начинаю кодировать, но не знаю, как включить данные из файлов:

// Slect from DB
$qsel=mysql_query("SELECT `qid`, `qtext` from `questions` ORDER BY `qid`");

// Open file 1 
$key1=fopen("data/test_1_key1.txt", "r");
$k1=explode("/r/n", $key1);

// Open file 2 
$key2=fopen("data/test_1_key2.txt", "r");
$k2=explode("/r/n", $key2);

$rtable='<table border="1" cellspacing="0" cellpadding="3">
    <tr>
      <th width="40%">Q</th>
      <th width="20%">A 1</th>
      <th width="20%">A 2</th>
      <th width="20%">NAME</th>
    </tr>';
  while($q=mysql_fetch_row($qsel))
  {

    $rtable.='<tr><td><b>'.$q['1'].'</b></td>'; 
    $rtable.='<td>data from file 1</td>'; 
    $rtable.='<td>data from file 2</td>'; 
    $rtable.='<td></td>'; 
  }
  echo '</table>'.$rtable;

1 Ответ

1 голос
/ 02 ноября 2011

Сначала я извлеку текстовые файлы и преобразовал бы их в индексированный массив:

$tmp1 = file('text1.txt');
$data1 = array();
foeach($tmp1 as $line)
{
    list($key1, $val1) = explode("|", $line);
    $data1[$key1] = $val1;
}

и затем в цикле выборки mysql просто используйте индексированный массив:

while($q=mysql_fetch_row($qsel))
{

    $rtable.='<tr><td><b>'.$q['1'].'</b></td>'; 
    $rtable.='<td>' . ( isset( $data1[ $q['0'] ] ) ? $data1[ $q['0'] ] : '' ) . '</td>'; 
    $rtable.='<td>data from file 2</td>'; 
    $rtable.='<td></td>'; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...