概括:
当显示来自 TABLE2 的数据时,将 TABLE2 的 TOPIC 字段中的数字替换为来自 TABLE1 的相关 TOPIC_NAME。
细节:
我在同一个 MySQL 数据库中有 2 个表。我需要帮助从 TABLE1 填充数组以供 TABLE2 使用。如果重要的话,我正在使用 PDO。
没有更新或插入......只显示单词而不是数字。
我是否将 TABLE2 Foreach 显示循环嵌套在 TABLE1 的 Foreach 循环中?
或者...
我可以先用 TOPIC 数据填充一个数组,然后执行 TABLE1 Foreach 显示循环吗?
或者...
我可以使用 TABLE2 中的数据引用 TABLE1 中的 TOPIC_NAME 而不创建数组吗?
或者...
???
==============================
TABLE1是主题列表。
表 1 语法:
TOPIC_NUM,TOPIC_NAME
来自表 1 的样本记录:
1、主题1
2、主题2
ETC...
==============================
表 2是个人和相关数据的列表。
表 2 语法:
ID,姓名,州,主题,年份
来自表 2 的样本记录:
1,约翰·史密斯,MA,2,2005
2,Jane Doe,亚利桑那州,2009 年 1 月
ETC...
==============================
仅供参考:在上面的示例记录中,州缩写后面的数字是 TOPIC。
这是我的代码:
<?php
try {
$db = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("SET CHARACTER SET utf8");
// TABLE1
$tablename1 = 'topics';
$topics_col1 = 'TOPIC_NUM';
$topics_col2 = 'TOPIC_NAME';
// TABLE2
$tablename2 = 'people';
$items_col1 = 'NAME';
$items_col2 = 'STATE';
$items_col3 = 'TOPIC';
$items_col4 = 'YEAR';
$items_q = "SELECT $items_col1, $items_col2, $items_col3 FROM $tablename2";
$items = $db->query($items_q);
foreach ($items as $items_row) {
?>
<h2><?php
/*
THIS IS WHERE THE TOPIC_NAME FROM TABLE1 SHOULD DISPLAY
*/
?></h2>
<p>
<?php echo $items_row[$items_col1];?>
<br />
<?php echo $items_row[$items_col2];?>
<br />
<?php echo $items_row[$items_col3];?>
<br />
<?php echo $items_row[$items_col4];?>
</p>
<?php
} // end FOREACH
$db = null; // close the database connection
} // end TRY
catch(PDOException $e) {
echo '<span class="error">ERROR:</span><br />'.$e->getMessage() . "<br />";
die();
} // end CATCH
?>