[英]PHP multiple entries
我正在用PHP / MYSQL创建一个小项目,但无法按我需要的方式运行查询。 我有2张桌子
表1(字符):
Id, name.
表2(法术):
Id, char, spell_name.
我得到的输出:
Name Spell1
Name Spell2
Name Spell3
但我需要这样:
Name Spell1
Spell2
Spell3
这是我的查询:
$query = "SELECT char.name AS name, spells.spell_name AS spell
FROM char, spells
WHERE (char.id = spells.spell_name)";
有任何想法吗?
我认为您将必须先获取要查询的字符的ID,然后再提取他/他有权使用的咒语。 例:
$char_id = 0; // value would be assigned arbitrarily.
$query = "SELECT *
FROM 'spells' s
WHERE s.char = $char_id;";
$result = $pdo->query($query);
while($row = $result->fetchObj()){
// do something with the spells obj here
}
使用SQL,您需要一次获取完整的行,因此我认为无法实现所需的情况。
正如Goldentoa11所写。 进行两次选择,或使用两个结果集创建查询(在一个命令中进行更多选择),或接受当前状态(正常,您可以验证数据一致性)。 我更喜欢当前状态,但有时使用任何描述的解决方案(基于查询频率,结果大小等)。
如果您需要列出此类数据,则可以使用以下方法:
$currentName = null;
while ($row = mysql_fetch_object($result))
{
if ($currentName != $row->name)
{
echo "<b>" . $row->name . "</b><br />";
$currentName = $row->name;
}
echo $row->spell_name . "<br />";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.