2012-04-13 90 views
0

我的查询突然停止工作。我知道这是荷兰人,但你能检测到任何错误吗? 没有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>'; 

} 
+0

如何从查询中获取数据?例如。如何从$ result中获得$ record? – mistalee 2012-04-13 07:42:36

回答

2

你做mysql_query,但你永远不补$record变量。你如何期待它有内容?

尝试增加:

$record = mysql_fetch_array($result); 

mysql_query后。

您需要了解它们是两个不同的东西:

  1. 的mysql_query将在服务器
  2. mysql_fetch_array(和朋友)在执行一个查询将获得所需格式的结果。

如果您只执行1,则执行查询。这工作正常,但如果您对结果感兴趣,则需要获取结果。有时你不需要(例如,当查询不是select时)。

2

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

有关添加什么:

echo $content; 

如果不打印出来,那么你不会看到任何东西:)

除此之外,你不混合$result$record

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>'; 

} 
1

停止工作,而不是打印出任何错误上升到怀疑,在数据库中的数据以某种方式改变和查询根本没有得到任何行。

在像phpMyAdmin这样的数据库环境中执行您的查询,并检查是否有任何行被返回。

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

0

你必须查询结果存储在$结果,但你不要再继续用$结果做任何事情 - 你需要做的是这样的:

$record = mysql_fetch_assoc($qry_result); 

检索从$结果记录结果。如果你希望不只是一个结果越多,你就需要通过所有的结果

0

更改使用while循环循环:

$content .= '<tr>'; 

要:

$content = '<tr>'; 

还有要记得echo$content在页面上。

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

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 
}