2017-03-31 78 views
0

我正在构建电视指南。 我想做一个查询“从程序中选择*”。 因为我使用了很多小查询,即每个通道1个,但效率不高。 请有人帮忙看看这里有什么问题吗? 我收到“致命错误:无法使用类型mysqli_result的对象数组中的script.php”MySQL/PHP - 如何引用并比较嵌套循环内的当前循环字段名称

频道表

name 
bbcone 
bbctwo 

节目表

channel - time - title 
bbcone - 6pm - news 
bbcone - 6.30 - weather 
bbcone - 7pm - the talk show 
bbctwo - 6pm - simpsons 
bbctwo - 6.30 - futurama 
bbctwo - 7pm - nature 



$channels=mysqli_query($db,$getchans); 
$programmes=mysqli_query($db,$getprogs); //holds all programmes 

while ($channel = $channels->fetch_assoc()) 
{ 
css channel name divs and echo $channel['name']; //works 

     while ($programme = $programmes->fetch_assoc()) 
     { 
      if ($programme['channel'] == $channel['name']); 
      {  
      do programme divs 
      } 
     } 
} 

我可以重复这两个值$节目['频道']和$频道['名称']在其他地方,他们都工作,例如,BBC1。

我不能为我的生活工作如何通过循环,的foreach通道,然后依次通过该频道的节目

(预期输出)

bbcone - 6pm news - 6.30 weather - 7pm the talk show - 8pm etc 
bbctwo - 6pm simpsons - 6.30 futurama - 7pm nature - 8pm etc 

请谁能告诉我在做什么错了?

回答

0
while ($channel = $channels->fetch_assoc()) 
{ 
    // $getprogs "select * from programmes where channel_name = $channel["channel_name"]" 
    $programmes=mysqli_query($db,$getprogs); 
    while ($programme = $programmes->fetch_assoc()) 
    { 
    } 
} 
+0

谢谢。虽然这就是我所说的关于做很多小问题的说法。我读过最好做一个大的查询,并让PHP解析它。但是,谢谢。也许我现在要做的就是让它工作。也许当我的PHP知识更好时,我可以考虑让事情更有效率。 – Paul

+0

取决于用例,如果你有一个大数据,你不能轻松处理它,你必须像这样分解数据以避免内存限制。 – mohe14