我怎么能使用foreach循环?

时间:2013-09-02 07:08:01

标签: php mysql mysqli

我有2张桌子

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

Anunturi

idAnunt     |Data   |Subiect    |Anunt  |AnuntContinuare
1           |text   |text       |text   |text
2           |text   |text       |text   |text
3           |text   |text       |text   |text
4           |text   |text       |text   |text

我有一个查询,可以使用JOIN ON

从两个表中获取数据
$constructtabelanunturi = "SELECT t.DataInterval, t.Denumire, t.Moderatori, t.Detalii FROM TabelAnunturi t JOIN Anunturi a ON (t.idAnunta = a.idAnunt)";

以及检查查询是否有结果的脚本,如果是,则显示结果...

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循环,但如何???

2 个答案:

答案 0 :(得分:2)

您的问题的答案:“我如何使用foreach循环?” :http://php.net/manual/en/control-structures.foreach.php

答案 1 :(得分:1)

仅将获取的数据放入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>";
}

你在每个循环中打印整个表,这就是问题。这个。它会起作用。