Php 将我的sql从foreach中取出以获取我的代码
我有这样的php代码:Php 将我的sql从foreach中取出以获取我的代码,php,sql,Php,Sql,我有这样的php代码: $q = $db->query("SELECT * FROM tabe1_data WHERE status='1' ORDER BY id DESC LIMIT 10"); $cr_onr = array(); while($row = $db->fetchAll($q)) { $cr_onr[] = $row; } ?> <?php foreach($cr_onr as $new_cr_onr):?> <?php $
$q = $db->query("SELECT * FROM tabe1_data WHERE status='1' ORDER BY id DESC LIMIT 10");
$cr_onr = array();
while($row = $db->fetchAll($q))
{
$cr_onr[] = $row;
}
?>
<?php foreach($cr_onr as $new_cr_onr):?>
<?php $crinfo = $db->fetchOne("SELECT * FROM tabe2_data WHERE id ='".$new_cr_onr['op_id']."'");?>
<p><?=$new_cr_onr['username'];?> has been complete <?=$crinfo['op_amount'];?></p>
<?php endforeach;?>
$q=$db->query(“从tabe1_数据中选择*,其中status='1'按id描述订单限制10”);
$cr_onr=array();
而($row=$db->fetchAll($q))
{
$cr_onr[]=$row;
}
?>
您可以加入表,而无需进行许多查询:
$q = $db->query("
SELECT
*
FROM
tabe1_data
INNER JOIN
tabe2_data ON tabe1_data.op_id = tabe2_data.id
WHERE
tabe1_data.status='1'
ORDER BY
tabe1_data.id DESC
LIMIT 10
");
$cr_onr = array();
while($row = $db->fetchAll($q))
{
$cr_onr[] = $row;
}
?>
<?php foreach($cr_onr as $new_cr_onr):?>
<p><?=$new_cr_onr['username'];?> has been complete <?=$new_cr_onr['op_amount'];?></p>
<?php endforeach;?>
$q=$db->query(“
挑选
*
从…起
表1_数据
内连接
tabe1_data.op_id=tabe2_data.id上的tabe2_数据
哪里
表1_data.status='1'
订购人
表1_data.id DESC
限制10
");
$cr_onr=array();
而($row=$db->fetchAll($q))
{
$cr_onr[]=$row;
}
?>
已经完成了
单一联接查询
SELECT tabe2_data.*
FROM tabe2_data
LEFT JOIN tabe1_data ON tabe1_data.op_id = tabe2_data.id
WHERE tabe1_data.status='1'
请解释为什么你投了反对票。你应该使用一个连接在一个查询中获得数据库中的所有信息:仅供参考和一些建议。您不必在每条语句后都有PHP打开和关闭标记。这是不必要的,并且使您的代码非常难以阅读。建议:1)尽量不要混用普通的php标签,这对我不起作用。但是非常感谢你试图帮助我。什么不起作用?你有错误吗?意外的结果?