为什么我的查询不起作用

时间:2012-04-13 07:39:04

标签: php mysql

我的查询突然停止工作。我知道它是荷兰语,但你能发现任何错误吗? 没有MySQL错误。他只是不会在屏幕上写$内容。 我尝试了很多东西。他只是停止工作

<?php
$activiteiten= "SELECT 
                activiteiten.ActiviteitID,
                activiteiten.Naam,
                activiteiten.plaatsen,
                agenda.TijdBegin,
                agenda.TijdEind,
                agenda.AgendaID,
                reserveren.ReserveringTijd


                FROM 
                activiteiten,
                agenda,
                reserveren

                WHERE

                agenda.ActiviteitID = activiteiten.ActiviteitID
                AND
                agenda.AgendaID = reserveren.AgendaID
                ";




$result = mysql_query($activiteiten) or die(mysql_error());

    $content .= '<tr>';


    $content .= '<td>'.$record['Naam'].'</td>';
    $content .= '<td>'.$record['ReserveringTijd'].'</td>';
    $content .='<td>Beschikbare plaatsen:'.$record['plaatsen'].'</td>';

    $agendaID= $record['AgendaID'];
    $agendaData = agendaData($agendaID);


    $content.= '<td>aantal reserveringen:'.$agendaData["reserveringen"].'</td>';
    $content.= '</tr>';

}

7 个答案:

答案 0 :(得分:2)

您执行了mysql_query,但从未填写$record变量。你怎么期望它有内容?

尝试添加:

$record = mysql_fetch_array( $result );

mysql_query之后。

您需要了解这些是两件不同的事情:

  1. mysql_query将在服务器上执行查询
  2. mysql_fetch_array(和朋友)将以所需的格式获得结果。
  3. 如果只执行1,则执行查询。这很好,但是如果你对结果感兴趣,你需要获取它们。有时您不需要(例如,当查询不是选择时)。

答案 1 :(得分:2)

  

没有MySQL错误。他只是不会将$ content写入屏幕。

添加如何:

echo $content;

如果您不打印,那么您将看不到任何内容:)

除此之外,你不是在混淆$result$record吗?

答案 2 :(得分:1)

你的代码在mysql_query之后缺少mysql_fetch_assoc调用,它应该是这样的:

$result = mysql_query($activiteiten) or die(mysql_error());

while(false != ($record = mysql_fetch_assoc($result))
{
    $content .= '<tr>';


    $content .= '<td>'.$record['Naam'].'</td>';
    $content .= '<td>'.$record['ReserveringTijd'].'</td>';
    $content .='<td>Beschikbare plaatsen:'.$record['plaatsen'].'</td>';

    $agendaID= $record['AgendaID'];
    $agendaData = agendaData($agendaID);


    $content.= '<td>aantal reserveringen:'.$agendaData["reserveringen"].'</td>';
    $content.= '</tr>';

}

答案 3 :(得分:1)

停止工作而不打印任何错误会增加数据库中的数据以某种方式发生变化并且查询根本没有得到任何行的怀疑。

在phpMyAdmin等数据库环境中执行查询,并检查是否返回任何行。

否则,请查看mysql-php相关错误的其他答案。

答案 4 :(得分:1)

$result = mysql_query($activiteiten) or die(mysql_error());

while ($record = mysql_fetch_array($result, MYSQL_ASSOC))
{
    // Your $record now contains the data you want
}

答案 5 :(得分:0)

您的查询结果存储在$ result中,但您不会继续使用$ result执行任何操作 - 您需要执行以下操作:

$record = mysql_fetch_assoc($qry_result);

从$ result中检索记录结果。如果您期望多个结果,则需要使用while循环来遍历所有结果

答案 6 :(得分:0)

变化:

 $content .= '<tr>';

要:

 $content = '<tr>';

请记住echo页面上的$content

确保您有错误报告,以便您立即看到问题出在未初始化的PHP变量或其他地方。