Php Mysql减少了查询数量
我在表1中有3列:book、key和valuePhp Mysql减少了查询数量,php,mysql,Php,Mysql,我在表1中有3列:book、key和value | book | key | value | ------------------------------ | 1 | author | a | | 1 | editor | b | | 1 | book | c | 而不是运行三个查询 $data = mysql_q
| book | key | value |
------------------------------
| 1 | author | a |
| 1 | editor | b |
| 1 | book | c |
而不是运行三个查询
$data = mysql_query("
SELECT * FROM table1 WHERE book = '1' AND key = 'author'
") or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{
$value1 = $info['value'];
}
然后对编辑和书籍重复这个步骤
$value1$value2$value3插入到第页的不同位置
我可以用一个问题来解决这个问题吗 要创建$value数组,必须使用以下命令:
$value[] = $info['value'];
与此相反:
$value1 = $info['value'];
此外您可以使用以下代码:
$value[]["key"] = $info['key'];
$value[]["value"] = $info['value'];
例如,您可以使用
$value[0][“value”]
Yes调用第一行的值。如果没有“book=1”的其他条目,您只需查询
SELECT * FROM table1 WHERE book = '1'
如果有更多条目,则可以使用此查询:
SELECT * FROM table1 WHERE book = '1' AND key IN('author','editor','book')
然后创建一个关联数组:
while($info = mysqli_fetch_assoc( $data ))
{
$value[$info['key']] = $info['value'];
}
...
echo "the book {$value['book']} was written by {$value['author']}";
如果要在单个记录中输入值,请尝试以下操作:
SELECT `t1`.`value` AS `value1`, `t2`.`value` AS `value2`, `t3`.`value` AS `value3`
FROM
`table1` AS `t1` CROSS JOIN
`table1` AS `t2` CROSS JOIN
`table1` AS `t3`
WHERE
(`t1`.`book` = 1) AND (`t1`.`key` = 'author')
AND (`t2`.`book` = 1) AND (`t2`.`key` = 'editor')
AND (`t3`.`book` = 1) AND (`t3`.`key` = 'book');
谢谢你的回答,那么我该如何调用每个值呢?