jnvnsn Posted June 7, 2011 Share Posted June 7, 2011 It does not execute the rest of the query after the first array is done. foreach(($params->dstchannel) as $b){ $c = $params->period_start; $d = $params->period_end; $t_dur=0; $t_bill=0; $totalprod1=0; $t_duration=0; $t_billsec=0; $t_same=0; $cdr->query("SELECT dst,dstchannel,duration,billsec,calldate FROM `cdr` WHERE (`calldate` >= '$c 00:00:01' AND `calldate` <= '$d 23:59:59') AND (`dstchannel` LIKE '%$b%') AND (`dst` NOT LIKE '9011%') "); unset($row); while ($row = $cdr->fetch_assoc()): $t_dst = $row['dst']; $t_duration += $row['duration']; $t_billsec += $row['billsec']; ?> <!--it stops executing here after the first array is done--> <tr style="display:none";> <td style="display:none";><?php $row['dst'];?></td> <td style="display:none";><?php $row['dstchannel'];?></td> <td style="display:none";><?php $row['duration'];?></td> <td style="display:none";><?php $row['billsec'];?></td> <td style="display:none";><?php $row['billsec'];?> <?php $num = $row['billsec']; if($num % 60){ $quotient = $num/60; $same = ceil($quotient); }else{ $quotient = $num/60; $same = $quotient; } $t_same += $same; ?> </td> </tr> <?php endwhile; ?> <table id="summary" cellspacing="0"> <h2>DESTINATION CHANNEL: <?php echo $b;?></h2> <?php if(($t_duration==0)&&($t_billsec==0)){ ?> <tr style="display: none";> </tr> <?php }else{?> <h3>US Calls</h3> <tr> <td class="row">Destination Prefix:</td> <td class="row">Destination Channel:</td> <td class="row">Total Duration:</td> <td class="row">Total Billsec:</td> <td class="row">Total Rounded off billsec:</td> </tr> <tr class="total"> <td><?php echo "US Call";?></td> <td><?php echo $b;?></td> <td><?php echo $t_duration; echo ' sec(s)';?></td> <td><?php echo $t_billsec; echo ' sec(s)';?></td> <td><?php echo $t_same; echo ' min(s)';?></td> </tr><?php }?> </table> <h3>Country Codes</h3> <table id="summary" cellspacing="0"> <tr> <td class="row">Country Code</td> <td class="row">Country</td> <td class="row">Destination Channel</td> <td class="row">Duration</td> <td class="row">Billsec</td> <td class="row">Rounded off billsec</td> <td class="row">Cost</td> <td class="row">Computed Cost</td> </tr> <?php unset($rowrow); while ($rowrow = $country->fetch_assoc()): $codec = $rowrow['ccode']; $newdb->query("SELECT dst,dstchannel,duration,billsec,calldate FROM `cdr` WHERE (`calldate` >= '$c 00:00:01' AND `calldate` <= '$d 23:59:59') AND ((`dstchannel` LIKE '%$b%')) AND (`dst` LIKE '9011$codec%') "); ?> <?php unset($result); while ($result = $newdb->fetch_assoc()): $var = $result['dst']; $t_dur += $result['duration']; $t_bill += $result['billsec']; ?> <!--COMPUTE ONLY--> <tr style="display: none"> <td><?php $var; $b; $result['duration']; $result['billsec'];?></td> <td><?php $result['billsec']; $num2 = $result['billsec']; if($num2 % 60){ $quotient2 = $num2/60; echo $same2 = ceil($quotient2); echo ' min(s)'; }else{ $quotient2 = $num2/60; echo $same2 = $quotient2; echo ' min(s)'; } $t_sam += $same2;?></td> </tr> <?php endwhile; if(($t_dur==0)&&($t_bill==0)){ ?> <tr style="display: none"></tr> <?php }else{?> <tr class="total" id="total"> <td><?php echo $codec; ?></td> <td><?php echo $rowrow['cname'];;?></td> <td><?php echo $b;?></td> <td><?php echo $t_dur;echo ' sec(s)';?></td> <td><?php echo $t_bill;echo ' sec(s)';?></td> <td ><?php $result['billsec'];?> <?php echo $t_sam; echo ' min(s)'; $t_dur = 0; $t_bill =0; ?></td> <td><?php $rates->query("SELECT cost FROM `rates` WHERE `channel`='$b' AND (`ccode`='$codec')"); while ($call = $rates->fetch_assoc()): echo $call['cost']; ?></td> <td><?php echo $product1=(($call['cost'])*($t_sam)); $totalprod1 += $product1; endwhile;?></td> </tr><?php $t_sam = 0; }?> <?php endwhile;?> <tr class='black'> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td><?php echo $totalprod1;?></td> </tr> </table> <br /> <br /> </body> <?php } endif; ?> Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/ Share on other sites More sharing options...
mikosiko Posted June 7, 2011 Share Posted June 7, 2011 and what have you done to debug your code? Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/#findComment-1226524 Share on other sites More sharing options...
RussellReal Posted June 7, 2011 Share Posted June 7, 2011 <td style="display:none";><?php $row['dst'];?></td> <td style="display:none";><?php $row['dstchannel'];?></td> <td style="display:none";><?php $row['duration'];?></td> <td style="display:none";><?php $row['billsec'];?></td> <td style="display:none";><?php $row['billsec'];?> I may be wrong, but that could be a syntax error right there, try doing <?=$var;?> or <?php echo $var; ?> btw, your db class kinda reminds me of the one I made a while back just throwing that out there. furthermore, you don't need to re-initialize a new connection object everytime you want to run a seperate query, if you want to do this to keep results from one query, you could simply store the mysql resultset resource in a different variable.. opening more than 1 database connection is inefficient and unnecessary.. is your error reporting turned on? Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/#findComment-1226539 Share on other sites More sharing options...
jnvnsn Posted June 7, 2011 Author Share Posted June 7, 2011 SOLVED IT! I tried putting the $country->query("SELECT ccode,cname FROM `countrycode`"); before the while loop ad it worked perfectly fine. I don't what cause the problem because this query is placed on a differenet php file. $country->query("SELECT ccode,cname FROM `countrycode`"); while ($rowrow = $country->fetch_assoc()): $codec = $rowrow['ccode']; $newdb->query("SELECT dst,dstchannel,duration,billsec,calldate FROM `cdr` WHERE (`calldate` >= '$c 00:00:01' AND `calldate` <= '$d 23:59:59') AND ((`dstchannel` LIKE '%$b%')) AND (`dst` LIKE '9011$codec%') "); Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/#findComment-1226546 Share on other sites More sharing options...
jnvnsn Posted June 7, 2011 Author Share Posted June 7, 2011 <td style="display:none";><?php $row['dst'];?></td> <td style="display:none";><?php $row['dstchannel'];?></td> <td style="display:none";><?php $row['duration'];?></td> <td style="display:none";><?php $row['billsec'];?></td> <td style="display:none";><?php $row['billsec'];?> This works perfectly fine for me. Anyway, i solved it already. SOLVED IT! I tried putting the $country->query("SELECT ccode,cname FROM `countrycode`"); before the while loop ad it worked perfectly fine. I don't what cause the problem because this query is placed on a differenet php file. $country->query("SELECT ccode,cname FROM `countrycode`"); while ($rowrow = $country->fetch_assoc()): $codec = $rowrow['ccode']; $newdb->query("SELECT dst,dstchannel,duration,billsec,calldate FROM `cdr` WHERE (`calldate` >= '$c 00:00:01' AND `calldate` <= '$d 23:59:59') AND ((`dstchannel` LIKE '%$b%')) AND (`dst` LIKE '9011$codec%') "); What I still don't get is why is it that if the second array is to be executed is returns no values. Thanks for the advise! Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/#findComment-1226550 Share on other sites More sharing options...
Pikachu2000 Posted June 7, 2011 Share Posted June 7, 2011 Duplicate threads merged to this one. Link to comment https://forums.phpfreaks.com/topic/238675-foreach-problemnot-executing-query/#findComment-1226571 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.