[英]PHP get all matching rows in relational mysql innodb database
我在数据库中建立了3个具有多对多关系的表。 对于数据库中的$refernece_keys
变量,应该返回数据库中的所有相关字段-但它仅返回第一个分配的字段,而忽略其他字段。
eg page1 should return keys_href: id's 1, 2, 3, 4, 8, 10, 15 - however it only returns id:1 page2 should return keys href: id's 3, 4, 5, 7, 8, 11 - however it only returns id:3
我的阵列有问题吗?
$SQL =
"SELECT * FROM learn_more AS lm
LEFT JOIN learn_more_to_reference_key AS lmtrk
ON lm.id = lmtrk.learn_more_id
LEFT JOIN reference_keys AS rk
ON rk.keys_id = lmtrk.reference_key_id
WHERE lm.page_title = '$this_page'";
$result = mysql_query($SQL) or die(mysql_error());
while ($db_field = mysql_fetch_array($result))
{
$id = $db_field['id'];
$main_title = $db_field['main_title'];
$main_content = $db_field['main_content'];
$reference_keys = $db_field['keys_href'];
$sub_title = $db_field['sub_title'];
$sub_content = $db_field['sub_content'];
}
------------------------------------------------>编辑
我的PHP视图页面是一个模板
<div id="content">
<div class="section_frame">
<div class="section_title">
<?php echo $main_title; ?>
</div>
<div class="section_content">
<?php echo $main_content; ?>
</div>
<div class="section_content_ref">
<span class="hl_reference"><u>key references:</u></span>
<?php echo $reference_keys; ?>
</div>
<div class="sub_section_title">
<?php echo $sub_title; ?>
</div>
<div class="sub_section_content">
<?php echo $sub_content; ?>
</div>
所以基本上我只希望我的价值观能得到回应。
嗯,我首先想到的是,由于您的while循环会遍历所有记录,因此在完成之后,只有最后一条记录才可用...除了您只看到第一个记录。 如果要在while循环中添加echo $id
,是否会打印所有ID? 另外,如果您还有更多代码来完成该示例,则将对您有所帮助。
$items = array();
while ($db_field = mysql_fetch_array($result))
{
$id = $db_field['id'];
$main_title = $db_field['main_title'];
$main_content = $db_field['main_content'];
$reference_keys = $db_field['keys_href'];
$sub_title = $db_field['sub_title'];
$sub_content = $db_field['sub_content'];
$items[$id] = array($main_title, $main_content, $reference_keys, $sub_title, $sub_content);
}
上面将创建一个数组,其中每个记录的ID指向记录信息。 这是否符合您的目标?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.