-1

我有 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 表中有超过 1 行具有相同的 id,则表 TabelAnunturi 中的每一行都会显示表的标题。如果我在表的行之间移动 WHILE 语句,无论查询是否没有结果,都会显示表头...我不能使用 while{ while{}} 循环...我认为我必须使用foreach循环,但如何???

4

2 回答 2

2

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

于 2013-09-02T07:57:26.983 回答
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>";
}

您在每个循环中都打印了整个表格,这就是问题所在。试试这个。希望它会起作用。

于 2013-09-02T07:18:06.217 回答