php - 如何将 3 个文件合并到一张表中?

标签 php mysql text-files

我有一个测试脚本,它生成包含答案的 txt 文件。并有 2 个包含正确答案的 txt 文件。我想: 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) 我想用来自 DB (MySQL) 的文本替换此文件中的 id。我有一个包含类似 ID 的问题和答案的表格(比如在 txt 文件中)。

所有文件的结构如下:

1|3
2|4
3|1

其中第一个数字 - 是问题的 ID,第二个是答案的变体。

我开始编码,但不知道如何从文件中包含数据:

// 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;

最佳答案

我会先获取文本文件并将其转换为索引数组:

$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>'; 
}

关于php - 如何将 3 个文件合并到一张表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954270/

相关文章:

Javascript Sum 字段错误 NaN

php - mySQLi 查询未提供正确的信息

java - 在java中使用for循环生成一些文本文件?

php - 如何将 laravel 6 升级到 7

php - 在 php 中为任意日期添加设定时间

c# - MySQL 警告 1264 日期时间值超出范围

sql - MySQL SELECT x FROM a WHERE NOT IN (SELECT x FROM b) - 意外结果

mysql - 导入 .txt 到 mysql

html - 文本文件下载链接(ruby on rails)

php - 检查记录是否存在 : insert if no, 如果存在则显示信息