p_cards
是“主表”,关系为1-M。这意味着每隔一张桌子(
p_images
,
p_infotext
,
p_rules
可以有多个与同一ID关联的行)
我的职责如下:
function GetpById($mysqli, $id) {
if($stmt = $mysqli->prepare("
SELECT *
FROM p_cards
INNER JOIN p_images ON p_images.card_id = p_cards.id
INNER JOIN p_infotext ON p_infotext.card_id = p_cards.id
INNER JOIN p_rules ON p_rules.card_id = p_cards.id
WHERE p_cards.id = ?
")) {
$stmt->bind_param("i", $id);
$stmt->execute() or trigger_error($stmt->error, E_USER_ERROR);
($stmt_result = $stmt->get_result()) or trigger_error($stmt->error, E_USER_ERROR);
if ($stmt_result->num_rows>0) {
while($row_data = $stmt_result->fetch_assoc()){
$array[] = $row_data;
}
return $array
} else {
return false;
}
} else {
return false;
}
}
使用上面的函数,它将为其他表中的每一行创建一个完整的行,从而使p\u卡中的信息为每个表复制。
例如,p\u images表将具有
id
p_id
,
image
language
. 对于与该ID相关联的每个存在的图像,它将关联p\u卡的信息。
我想要的是不要有重复的信息。我怎样才能做到这一点?
编辑:
表p\U卡
表p\U图像
当我进行查询时,我得到了p\图像(和其他表)中每个信息的p\卡信息:
这样我就可以得到这样的信息,这样我就可以使用这些信息制作一个表单来编辑数据:
id
slug
card_number
...
--[images]
---[en]
----thumb_img
----full_size
----name
---[pt]
----thumb_img
...
最好的方法是什么?