Php 如何使用foreach循环?
我有两张桌子Php 如何使用foreach循环?,php,mysql,mysqli,Php,Mysql,Mysqli,我有两张桌子 TabelAnunturi idAnunta |DataInterval |Denumire |Moderatori |Detalii 2 |text |text |text |text 2 |text |text |text |text 3 |text |text |text
TabelAnunturi
idAnunta |DataInterval |Denumire |Moderatori |Detalii
2 |text |text |text |text
2 |text |text |text |text
3 |text |text |text |text
3 |text |text |text |text
及
我有一个查询,它从两个表中获取连接为ON的数据
以及一个脚本,用于检查查询是否有结果,如果有,则显示结果
echo "
<div class='noutati'>
<table class='dataanunturi'>
<tr>
<td class='data'>{$runrows ['Data']}</td>
<td class='subiect'>Subiect:</td>
<td>{$runrows ['Subiect']}</td>
</tr>
</table>
{$runrows ['Anunt']} ";
while($runrowstabelanunturi = mysql_fetch_assoc($runtabelanunturi))
{
$DataInterval = $runrowstabelanunturi ['DataInterval'];
$Denumire = $runrowstabelanunturi ['Denumire'];
$Moderatori = $runrowstabelanunturi ['Moderatori'];
$Detalii = $runrowstabelanunturi ['Detalii'];
echo"
<br>
<br>
<table class=\"anunturi\">
<tr>
<th class=\"dataanunturi\">Dată / Interval orar</th>
<th class=\"denumire\">Denumire</th>
<th class=\"moderatori\">Moderatori</th>
<th>Detalii</th>
</tr>";
echo"
<tr>
<td>$DataInterval</td>
<td>$Denumire</td>
<td>$Moderatori</td>
<td>$Detalii</td>
</tr>";
echo"
</table>";
}
echo"
</div>";
问题是,如果TabelAnunturi表中有多个具有相同id的行,则会为TabelAnunturi表中的每一行显示表头。如果我在表的行之间移动WHILE语句,无论查询是否有结果,都将显示表头。。。我不能使用while{{}}循环。。。我认为我必须使用foreach循环,但如何使用呢?只将获取的数据放在while循环中
if(mysql_num_rows($runtabelanunturi) > 0) {
echo "<table class=\"anunturi\">
<tr>
<th class=\"dataanunturi\">Dată / Interval orar</th>
<th class=\"denumire\">Denumire</th>
<th class=\"moderatori\">Moderatori</th>
<th>Detalii</th>
</tr>";
while($runrowstabelanunturi = mysql_fetch_assoc($runtabelanunturi))
{
$DataInterval = $runrowstabelanunturi ['DataInterval'];
$Denumire = $runrowstabelanunturi ['Denumire'];
$Moderatori = $runrowstabelanunturi ['Moderatori'];
$Detalii = $runrowstabelanunturi ['Detalii'];
echo"<tr>
<td>$DataInterval</td>
<td>$Denumire</td>
<td>$Moderatori</td>
<td>$Detalii</td>
</tr>";
}
echo"
</table>";
}
您在每个循环中打印整个表,这就是问题所在。试试这个。希望它能起作用。问题的答案:如何使用foreach循环 我应该在我的代码中放置一个while循环,这是一个确定的离题问题。您的echo语句将折磨您的服务器,不要重复太多html@YourCommonSense我已经编辑了这个问题。。。现在是ontopic吗?但是如果我这样做,正如我之前所说的,表的标题将显示,并且我希望它仅在有结果的情况下显示…然后首先检查获取的行数。如果你希望打印每个记录的标题,那么将其放入循环中。再次阅读问题。。。通常我不希望在没有结果的情况下显示表格,但如果有结果,则标题应仅显示一次,然后显示结果。如果我按你的方式做,不管是否有结果,标题都会显示出来…我有这个If条件。。。但是我有这个代码,上面的代码在另一个循环中,一个foreach循环,它使表头显示在另一个地方,因为查询中有可用的结果。。。很难理解explain@ionvoinescu你的问题不好。只需将答案标记为答案。
echo "
<div class='noutati'>
<table class='dataanunturi'>
<tr>
<td class='data'>{$runrows ['Data']}</td>
<td class='subiect'>Subiect:</td>
<td>{$runrows ['Subiect']}</td>
</tr>
</table>
{$runrows ['Anunt']} ";
while($runrowstabelanunturi = mysql_fetch_assoc($runtabelanunturi))
{
$DataInterval = $runrowstabelanunturi ['DataInterval'];
$Denumire = $runrowstabelanunturi ['Denumire'];
$Moderatori = $runrowstabelanunturi ['Moderatori'];
$Detalii = $runrowstabelanunturi ['Detalii'];
echo"
<br>
<br>
<table class=\"anunturi\">
<tr>
<th class=\"dataanunturi\">Dată / Interval orar</th>
<th class=\"denumire\">Denumire</th>
<th class=\"moderatori\">Moderatori</th>
<th>Detalii</th>
</tr>";
echo"
<tr>
<td>$DataInterval</td>
<td>$Denumire</td>
<td>$Moderatori</td>
<td>$Detalii</td>
</tr>";
echo"
</table>";
}
echo"
</div>";
if(mysql_num_rows($runtabelanunturi) > 0) {
echo "<table class=\"anunturi\">
<tr>
<th class=\"dataanunturi\">Dată / Interval orar</th>
<th class=\"denumire\">Denumire</th>
<th class=\"moderatori\">Moderatori</th>
<th>Detalii</th>
</tr>";
while($runrowstabelanunturi = mysql_fetch_assoc($runtabelanunturi))
{
$DataInterval = $runrowstabelanunturi ['DataInterval'];
$Denumire = $runrowstabelanunturi ['Denumire'];
$Moderatori = $runrowstabelanunturi ['Moderatori'];
$Detalii = $runrowstabelanunturi ['Detalii'];
echo"<tr>
<td>$DataInterval</td>
<td>$Denumire</td>
<td>$Moderatori</td>
<td>$Detalii</td>
</tr>";
}
echo"
</table>";
}