i hope this is the correct place to ask this. I'm working with a Wordpress theme which detects opening times of a business from a custom field, compares it to the current day and time and then displays a message to say if the business is currently open. This works perfectly in English, but when i change the site language to Spanish using qTranslate X Plugin, the business permanently appears as not open. I really have limited skills at this kinda thing, so i'm hoping someone can advise me.
From what i can see this is the js that does the comparison.
<?php
/* ============== Check TIme ============ */
if (!function_exists('listingpro_check_time')) {
function listingpro_check_time($postid,$status = false) {
$output='';
$buisness_hours = listing_get_metabox_by_ID('business_hours', $postid);
if(!empty($buisness_hours)){
if(!empty($postid)){
$lat = listing_get_metabox_by_ID('latitude',$postid);
$long = listing_get_metabox_by_ID('longitude',$postid);
}
//$timezone = getClosestTimezone($lat, $long);
$timezone = get_option('gmt_offset');
$time = gmdate("H:i", time() + 3600*($timezone+date("I")));
$day = gmdate("l");
$time = strtotime($time);
$lang = get_locale();
setlocale(LC_ALL, $lang.'.utf-8');
$day = strftime("%A");
$day = ucfirst($day);
foreach($buisness_hours as $key=>$value){
if($day == $key){
$dayName = esc_html__('Today','listingpro');
}else{
$dayName = $key;
}
$open = $value['open'];
$open = str_replace(' ', '', $open);
$close = $value['close'];
$close = str_replace(' ', '', $close);
$open = strtotime($open);
$close = strtotime($close);
$newTimeOpen = date('h:i A', $open);
$newTimeClose = date('h:i A', $close);
if($day == $key){
if($time > $open && $time < $close){
if($status == false){
$output = '<span class="grid-opened">'.esc_html__('Open Now~','listingpro').'</span>';
}else{
$output = 'open';
}
}else{
if($status == false){
$output = '<span class="grid-closed">'.esc_html__('Closed Now!','listingpro').'</span>';
}else{
$output = 'close';
}
}
}
}
}else{
if($status == true){
$output = 'open';
}
}
return $output;
}
}
Any direction would be greatly appreciated.
Related
My question is: Is there any other method to select the values I need from all the tasks that belongs to same project and sum them? Other method that I tried in the down description?
Description:
I have an app where I can create a Project and, inside the Project, I can create Tasks. For every Task, I can add a percent and calculate a price (example picture 1).
Then I have a report page where I want to calculate all the prices from all of the Tasks of same project (example picture 2).
My problem is when I want to select all the prices from all the tasks that belongs to same projects and sum them in the table "price" of report page.
For the moment I tried a method with the code I put down, and it's not working as I need, because it take the correct value from the first task of the project but dont take corect value from the ohther tasks from the same project
picture 1
picture 2 (but here the problem is that just the first array is corrent the other are not)
code I use ( I commented in the code with "the code that doesnt work" the part that make the sum) :
<?php
defined('BASEPATH') or exit('No direct script access allowed');
$hasPermissionEdit = has_permission('tasks', '', 'edit');
$hasPermissionDelete = has_permission('tasks', '', 'delete');
$tasksPriorities = get_tasks_priorities();
$aColumns = [
db_prefix() . 'tasks.id as id',
db_prefix() . 'tasks.name as task_name',
'count(tbltasks.id) as totaltasks',
//'(SELECT GROUP_CONCAT(name SEPARATOR ",") FROM ' . db_prefix() . 'tasks) as itemlist',
];
$sIndexColumn = 'id';
$sTable = db_prefix() . 'tasks';
$where = [];
$join = [];
$sGroupBy = ' group by '.db_prefix() . 'tasks.rel_id';
// =============== Filter =================
if (isset($ts_filter_data['period-from']) && $ts_filter_data['period-from'] != '' && isset($ts_filter_data['period-to']) && $ts_filter_data['period-to'] != '') {
$ts_filter_from = to_sql_date($ts_filter_data['period-from']);
$ts_filter_from = date('Y-m-d', strtotime($ts_filter_from));
$ts_filter_to = to_sql_date($ts_filter_data['period-to']);
$ts_filter_to = date('Y-m-d', strtotime($ts_filter_to));
}
if (isset($ts_filter_data['this_month']) && $ts_filter_data['this_month'] != '') {
$ts_filter_from = date('Y-m-01');
$ts_filter_to = date('Y-m-t 23:59:59');
}
if (isset($ts_filter_data['last_month']) && $ts_filter_data['last_month'] != '') {
$ts_filter_from = date('Y-m-01', strtotime('-1 MONTH'));;
$ts_filter_to = date('Y-m-t 23:59:59', strtotime('-1 MONTH'));
}
if (isset($ts_filter_data['this_week']) && $ts_filter_data['this_week'] != '') {
$ts_filter_from = date('Y-m-d', strtotime('monday this week'));
$ts_filter_to = date('Y-m-d 23:59:59', strtotime('sunday this week'));
}
if (isset($ts_filter_data['last_week']) && $ts_filter_data['last_week'] != '') {
$ts_filter_from = date('Y-m-d', strtotime('monday last week'));
$ts_filter_to = date('Y-m-d 23:59:59', strtotime('sunday last week'));
}
if($ts_filter_from){
array_push($where, 'AND '.db_prefix().'tasks.startdate >="'.$ts_filter_from.'"');
}
if($ts_filter_to){
array_push($where, 'AND '.db_prefix().'tasks.startdate <="'.$ts_filter_to.'"');
}
// =============== Filter =================
array_push($where, 'AND '.db_prefix().'tasks.rel_type="project"');
// Script By Dev Websyms
$aColumns = hooks()->apply_filters('tasks_table_sql_columns', $aColumns);
// Fix for big queries. Some hosting have max_join_limit
if (count($custom_fields) > 4) {
#$this->ci->db->query('SET SQL_BIG_SELECTS=1');
}
$result = data_tables_init(
$aColumns,
$sIndexColumn,
$sTable,
$join,
$where,
[
'tbltasks.rel_type',
'tbltasks.rel_id',
'tbltasks.task_item_percentage',
'tbltasks.task_duration',
tasks_rel_name_select_query() . ' as rel_name',
get_sql_select_task_assignees_ids() . ' as assignees_ids',
'(SELECT staffid FROM ' . db_prefix() . 'task_assigned WHERE taskid=' . db_prefix() . 'tasks.id AND staffid=' . get_staff_user_id() . ') as is_assigned',
],
$sGroupBy
);
$output = $result['output'];
$rResult = $result['rResult'];
$loop = 1;
foreach ($rResult as $aRow) {
$row = [];
$projectTaskIds = get_assign_project_task($aRow['rel_id']);
$assignees_ids = $aRow['assignees_ids'];
$assignees_id = explode(',', $assignees_ids);
$calA = get_task_user_hourly_rate($assignees_id[0]); // hourly_rate
if($projectTaskIds && count($projectTaskIds)){
$realTime = 0;
$estimateCost = 0;
$itemName = '';
$realCost = 0;
$realCostArr = array();
$totalCalEArr = array();
foreach ($projectTaskIds as $key => $projectTaskId) {
// echo $projectTaskId['id'];
// echo "<br>";
$calB = 0;
$calC = 0;
$itemtotal = 0;
$items = get_items_by_type('task', $projectTaskId['id']);
if($items && count($items) > 0){
$itemNo = 1;
foreach ($items as $key => $item) {
$itemtotal += ($item["rate"]*$item["qty"]);
$itemName .= '<div>'.$itemNo.'.'.$item["description"].' <b>('.round($item["qty"]).')</b>'.'</div>';
$itemNo++;
}
}
// =============== the code that doesn't work ============
$calF = get_task_user_hourly_rate($assignees_id[0]); // hourly_rate
$calG = get_task_custom_billable_amount($aRow['id']);
$calE = ($itemtotal+$aRow['task_item_manual_total_price']-$itemtotal);
if(isset($aRow['task_item_percentage'])){
$calE = ((round($itemtotal + ((($calF * $aRow['task_duration'] / 60))))
*($aRow['task_item_percentage']/100)))
+(round($itemtotal + (($calF * $aRow['task_duration'] / 60)))); // additionalPriceTotal
}
$totalCalEArr[] = $calE;
if($totalCalEArr && count($totalCalEArr) > 0){
$totalsCalEaMount = 0;
foreach ($totalCalEArr as $key => $totalvalue) {
$totalsCalEaMount += $totalvalue;
}
}
// =============== the code that doesnt work ============
$realTime += get_calc_task_real_logged_time($projectTaskId['id']);
$calB = get_task_custom_billable_amount($projectTaskId['id']);
if($aRow['task_item_percentage']){
$calC = ((round($itemtotal + ((($calF * $aRow['task_duration'] / 60))))*($aRow['task_item_percentage']/100)))+(round($itemtotal + (($calF * $aRow['task_duration'] / 60)))); // additionalPriceTotal
} else {
$calC = ($itemtotal+$aRow['task_item_manual_total_price']-$itemtotal);
}
$estimateCost += round($itemtotal+($calA * $aRow['task_duration'] / 60));
$realCost = round($itemtotal+$calB);
// if($calC = 0){ $realCost = round($itemtotal+$calB);} else { $realCost = round($itemtotal+$calB+$calC);
// }
$realCostArr[] = $realCost;
}
if($realCostArr && count($realCostArr) > 0){
$realCostAmount = 0;
foreach ($realCostArr as $key => $reslcostvalue) {
$realCostAmount += $reslcostvalue;
}
}
}
$outputName = '';
$relName = '';
$row[] = $loop;
if ($aRow['rel_name']) {
$relName = task_rel_name($aRow['rel_name'], $aRow['rel_id'], $aRow['rel_type']);
$link = task_rel_link($aRow['rel_id'], $aRow['rel_type']);
$relName = '<span class="hide"> - </span><a class="text-muted task-table-related" data-toggle="tooltip" title="' . _l('task_related_to') . '" href="' . $link . '">' . $relName . '</a>';
}
$row[] = $relName;
$row[] = count($projectTaskIds);
$row[] = $itemName;
$row[] = $aRow['task_duration']*count($projectTaskIds);
$row[] = round($realTime/60);
$row[] = round($estimateCost);
$row[] = round($realCostAmount);
$row[] = '';
$row[] = $totalCalEArr; // display as array or
//$row[] = $totalsCalEaMount; //to display as a sum
$output['aaData'][] = $row;
$loop++;
}
And if you need more details you can find a guide how to use it: http://amco.ro/pdf/Error%20presentation.pdf
I have been struggling with this for a while now, I got some help from a similar question but I can't seem to make it work in my example.
I have an RSS feed on my website and what I am trying to do is display a message saying "No Warnings" when the RSS feed is blank/empty. If there is something in the RSS feed then I just want to show that.
For the life of me I can't get this to work! I can't get it to recognize the feed is blank...is this possible??
Here is my code,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Loading directly an RSS feed and displaying it</title></head>
<link type="text/css" href="rss-style.css" rel="stylesheet">
<body bgcolor="#FFE991">
<div id="zone" ><img src="/images/alert-icon-120.png" alt="Weather Warnings for SA. Issued by the Australian Bureau of Meteorology" align="left" style="padding-right: 4pt"width="15" height="15" border="0"/> Current South Australian Statewide Warnings:<small><em><font color="black"> Provided by The Bureau of Meteorology</font></em></small>
</div>
<fieldset class="rsslibbomsa">
<?php
require_once("rsslib.php");
$url = "http://www.bom.gov.au/fwo/IDZ00057.warnings_sa.xml";
$rss = RSS_Display($url, 15, false, false);
if ($rss == '')
{
// nothing shown, do whatever you want
echo 'No Current Warnings';
}
else
{
// something to display
echo $rss123;
}
?>
</fieldset>
</body>
</html>
If it helps RSS_Display is from the rsslib.php file, which I have provided below,
<?php
/*
RSS Extractor and Displayer
(c) 2007-2010 Scriptol.com - Licence Mozilla 1.1.
rsslib.php
Requirements:
- PHP 5.
- A RSS feed.
Using the library:
Insert this code into the page that displays the RSS feed:
<?php
require_once("rsslib.php");
echo RSS_Display("http://www.bom.gov.au/fwo/IDZ00059.warnings_vic.xml", 15);
? >
*/
$RSS_Content = array();
function RSS_Tags($item, $type)
{
$y = array();
$tnl = $item->getElementsByTagName("title");
$tnl = $tnl->item(0);
$title = $tnl->firstChild->textContent;
$tnl = $item->getElementsByTagName("link");
$tnl = $tnl->item(0);
$link = $tnl->firstChild->textContent;
$tnl = $item->getElementsByTagName("pubDate");
$tnl = $tnl->item(0);
$date = $tnl->firstChild->textContent;
$tnl = $item->getElementsByTagName("description");
$tnl = $tnl->item(0);
$description = $tnl->firstChild->textContent;
$y["title"] = $title;
$y["link"] = $link;
$y["date"] = $date;
$y["description"] = $description;
$y["type"] = $type;
return $y;
}
function RSS_Channel($channel)
{
global $RSS_Content;
$items = $channel->getElementsByTagName("item");
// Processing channel
$y = RSS_Tags($channel, 0); // get description of channel, type 0
array_push($RSS_Content, $y);
// Processing articles
foreach($items as $item)
{
$y = RSS_Tags($item, 1); // get description of article, type 1
array_push($RSS_Content, $y);
}
}
function RSS_Retrieve($url)
{
global $RSS_Content;
$doc = new DOMDocument();
$doc->load($url);
$channels = $doc->getElementsByTagName("channel");
$RSS_Content = array();
foreach($channels as $channel)
{
RSS_Channel($channel);
}
}
function RSS_RetrieveLinks($url)
{
global $RSS_Content;
$doc = new DOMDocument();
$doc->load($url);
$channels = $doc->getElementsByTagName("channel");
$RSS_Content = array();
foreach($channels as $channel)
{
$items = $channel->getElementsByTagName("item");
foreach($items as $item)
{
$y = RSS_Tags($item, 1); // get description of article, type 1
array_push($RSS_Content, $y);
}
}
}
function RSS_Links($url, $size = 15)
{
global $RSS_Content;
$page = "<ul>";
RSS_RetrieveLinks($url);
if($size > 0)
$recents = array_slice($RSS_Content, 0, $size + 1);
foreach($recents as $article)
{
$type = $article["type"];
if($type == 0) continue;
$title = $article["title"];
$link = $article["link"];
$page .= "<li>$title</li>\n";
}
$page .="</ul>/n";
return $page;
}
function RSS_Display($url, $size = 15, $site = 0, $withdate = 0)
{
global $RSS_Content;
$opened = false;
$page = "";
$site = (intval($site) == 0) ? 1 : 0;
RSS_Retrieve($url);
if($size > 0)
$recents = array_slice($RSS_Content, $site, $size + 1 - $site);
foreach($recents as $article)
{
$type = $article["type"];
if($type == 0)
{
if($opened == true)
{
$page .="</ul>\n";
$opened = false;
}
$page .="<b>";
}
else
{
if($opened == false)
{
$page .= "<ul>\n";
$opened = true;
}
}
$title = $article["title"];
$link = $article["link"];
$page .= "<li>$title";
if($withdate)
{
$date = $article["date"];
$page .=' <span class="rssdate">'.$date.'</span>';
}
$description = $article["description"];
if($description != false)
{
$page .= "<br><span class='rssdesc'>$description</span>";
}
$page .= "</li>\n";
if($type==0)
{
$page .="</b><br />";
}
}
if($opened == true)
{
$page .="</ul>\n";
}
return $page."\n";
}
?>
Any help would be much appreciated.
Many thanks.
If you look at the rsslib code, you see that if the rss has no articles, the returned string will be \n.
The test to check if the RSS is empty should be if ($rss == "\n")
In addition to this, rsslib seems to be an old code (2010) and it is not object oriented (this is a problem because there are global vars defined outside the functions which can be in conflict with your code.
Moreover, this class does all the formatting of the RSS so if you want to change it, you will need to change the rsslib code.
You should consider using an other class like this one : https://github.com/dg/rss-php which is object oriented and easy to use.
I have some php and html code and a small bit of JavaScript. Its a like system. Click the like button or dislike button and when you exit/leave the page the JavaScript and ajax runs a php file to update the database with the changes.(+1 to likes or +1 to dislikes or -1 to dislikes etc.) There is one problem. I click like/dislike and then i leave/ refresh page and the likes have not changed in value. If i dont click anything, which means im not updating the database and i refresh/leave a second time the likes are updated on the screen to what they should be. The database gets updated when its suppose to, its the code that dosnt use the new value for whatever reason. Here's my code:
<?php
session_start();
error_reporting(0);
$GOTID = $_GET['id'];
$GOTtitle = $_GET['title'];
include_once "mysql_connect.php";
include_once "like.php";
//include_once "dislike.php";
$email ='';
$log = null;
$log1 = null;
if(isset($_SESSION["ID"])){
$log1 = $_SESSION["ID"];
}else{
$log1=null;
}
if(isset($_SESSION["EMAIL"])){
$log = $_SESSION["EMAIL"];
$email = $_SESSION["EMAIL"];
// echo $email;
}else{
$log=null;
}
$_SESSION["EMAIL"] = $log;
$title = "";
$text="";
$tags = "";
$views = "";
$likes = "";
$dislikes = "";
$id = "";
$userid = "";
$date = "";
$thumbnail = "";
$imageext = "";
$texttype = "";
$data = mysql_query("SELECT * FROM videos WHERE id=$GOTID");
while ($row = mysql_fetch_array($data)) {
$title = $row[0];
$descrip = $row[1];
$id = $row[2];
$userid = $row[3];
$date = $row[4];
$views = $row[5];
$likes = $row[6];
$dislikes = $row[7];
$thumbnail = $row[8];
$imagext = $row[10];
$videourl = $row[11];
}
if($likes != '0' || $dislikes !='0'){
$total = $likes + $dislikes;
$likebar = round(($likes / $total) * 100);
$finlikes = (($likebar * 150)/100);
}else{
$finlikes = 150;
}
$query5 = mysql_query("UPDATE `videos` SET `views` = `views`+1 WHERE `videos`.`id` = $GOTID;");
$stop = false;
$fetchlast = mysql_query("SELECT `id` FROM videos WHERE id=(SELECT MAX(id) FROM videos)");
$lastrow = mysql_fetch_row($fetchlast);
$lastid = $lastrow[0];
for ($i=1; $i <= $lastid; $i++) {
if($GOTID == $id){
$stop = true;
break;
}else{
if($i >=$lastid && $GOTID != $id){
$stop = false;
header('HTTP/1.0 404 Not Found');
$_GET['e'] = 404;
die();
exit;
}
}
}
$username = '';
$userrep = '';
$rank = '';
$imageData = '';
$currentname = mysql_query("SELECT * FROM allaccounts WHERE id=$userid");
while ($row = mysql_fetch_array($currentname)) {
$username = $row[0];
$rank = $row[3];
$userrep = $row[7];
$data = $row["image"];
$ext = $row["filetype"];
// $img1 = Img_Resize($data);
// $imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
}
$liked = false;
$disliked = false;
$done = false;
$thing = mysql_query("SELECT `id` FROM likes WHERE id=(SELECT MAX(id) FROM likes)");
$lastrow = mysql_fetch_row($thing);
$lastid = $lastrow[0];
if($lastid == null || $lastid == '0'){
$lastid = '1';
}
$state1 = '';
for ($i=1; $i <= $lastid+1; $i++) {
$current = mysql_query("SELECT * FROM likes WHERE id=$i");
while ($row = mysql_fetch_array($current)) {
$id1 = $row[0];
$userid1 = $row[1];
$state1 = $row[2];
$articleid1 = $row[3];
if($done == false){
if($email == $userid1 && $articleid1 == $id && $state1 == '1'){
$liked = true;
$disliked = false;
$done = true;
break;
}else{
$liked = false;
}
if($email == $userid1 && $articleid1 == $id && $state1 == '0'){
$disliked = false;
$liked = false;
$done = true;
break;
}
if($email == $userid1 && $articleid1 == $id && $state1 == '2'){
$disliked = true;
$liked = false;
$done = true;
break;
}else{
$disliked = false;
}
}
}
}
$donetitle = str_replace(" ", "-", $title);
$_SESSION["prevpage"] = "video/".$id."/".$donetitle."";
$lik = mysql_query("SELECT * FROM videos WHERE id=$GOTID");
while ($row22 = mysql_fetch_array($lik)) {
$Olikes = $row22[6];
}
$dis = mysql_query("SELECT * FROM videos WHERE id=$GOTID");
while ($row22 = mysql_fetch_array($dis)) {
$Odislikes = $row22[7];
}
?>
<html>
<head>
<title><?php echo $title;?></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"language="javascript" type="text/javascript"></script>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<script type="text/javascript">
var likes = <?php echo $likes;?>;
var dislikes = <?php echo $dislikes;?>;
</script>
<div class = "container_24">
<header>
</header>
<div class = "main clearfix">
<div class ="grid_24 ">
<div id = "rectarticletop">
<a onclick='like()' id="likebtn"><img id="alike"src="img/icons/like.png" alt = "like"/></a>
<div id="dislikes"><div style="width:<?php echo($finlikes);?>;" id="likes"></div></div>
<a onclick="dislike()" id="dislikebtn"><img id="adislike" src="img/icons/dislike.png" alt = "dislike" /></a>
<p id= "likesnum"><?php echo $likes; ?></p>
<p id= "dislikesnum"><?php echo $dislikes; ?></p>
<script type="text/javascript">
var Liked = "<?php echo $liked;?>";
var Disliked = "<?php echo $disliked;?>";
var Art = "<?php echo $id;?>";
var User = "<?php echo $email;?>";
var olikes = "<?php echo $Olikes;?>";
var odislikes = "<?php echo $Odislikes;?>";
var state = "<?php echo $state1; ?>";
if(Liked == null){
Liked = false;
}
if(Disliked == null){
Disliked == false;
}
if(!Liked){
console.log("not liked!");
}
if(!Disliked){
console.log("not disliked!");
}
var loged = "<?php echo($log);?>";
window.onbeforeunload = function() {
$.ajax({
type: "GET",
url: 'dealLikes.php?article='+Art+'&user='+User+'&state=1&likes='+likes+'&dislikes='+dislikes+'&Olikes='+olikes+'&Odislikes='+odislikes+'&prev='+state+'',
success: function(data){
console.log("Its done!");
}
});
};
setInterval(function changetext(){
document.getElementById('likesnum').innerHTML = likes;
document.getElementById('dislikesnum').innerHTML = dislikes;
if(Liked){
document.getElementById('alike').src = "img/icons/like1.png";
}else{
document.getElementById('alike').src = "img/icons/like.png";
}
if(Disliked){
document.getElementById('adislike').src = "img/icons/dislike1.png";
}else{
document.getElementById('adislike').src = "img/icons/dislike.png";
}
},20);
function like(){
if(loged){
if(Liked){
likes-=1;
Liked = false;
// document.getElementById('alike').src = "img/icons/like.png";
}else if(Disliked){
dislikes-=1;
Disliked = false;
likes+=1;
Liked = true;
// document.getElementById('alike').src = "img/icons/like1.png";
// document.getElementById('adislike').src = "img/icons/dislike.png";
}else{
likes+=1;
Liked = true;
// document.getElementById('alike').src = "img/icons/like1.png";
}
}else{
window.location = "login";
}
}
function dislike(){
if(loged){
if(Disliked){
dislikes-=1;
Disliked = false;
// document.getElementById('adislike').src = "img/icons/dislike.png";
}else if(Liked){
likes-=1;
Liked = false;
dislikes+=1;
Disliked = true;
// document.getElementById('adislike').src = "img/icons/dislike1.png";
//document.getElementById('alike').src = "img/icons/like.png";
}else{
dislikes+=1;
Disliked = true;
// document.getElementById('adislike').src = "img/icons/dislike1.png";
}
}else{
window.location = "login";
}
}
</script>
</div>
</div>
</div>
</div>
</body>
</html>
What is wrong with the code that makes it not update the amount of likes on the first refresh but does update on the second refresh?
I wanna make statistics in my website for the last 3 years
I want to show result like this
2016 : 159
2015 : 132
2014 : 200
I try my code (this's)
$date2 = date('Y');
$n = $date2;
for($i=$n-2;$i<=$n;$i++) {
$sql = "SELECT sum(count) AS value_sum FROM statistics where YEAR(st_date) = $i ";
$sql_sel = mysqli_query($conn,$sql);
echo '
<script>
var pieData = [
';
while($rows = mysqli_fetch_assoc($sql_sel)) {
if($i == $n-2) {
echo '{
value: '.$rows['value_sum'].',
color:"#337AB7"
},';
}
else if($i == $n-1) {
echo '{
value: '.$rows['value_sum'].',
color:"#FC8213"
},';
}
else if($i == $n) {
echo '{
value: '.$rows['value_sum'].',
color:"#8BC34A"
},';
}
echo'];
new Chart(document.getElementById("pie").getContext("2d")).Pie(pieData);
</script>';
}}
?>
but this code give me just 1 one row like this
2016 : 159
I wanna see all result, any help ?
You're creating 3 charts within your for loop. If you allow php to encode the data for you, you can echo the script outside of the PHP like so:
$date2 = date('Y');
$n = $date2;
$data = array();
for($i=$n-2;$i<=$n;$i++) {
$sql = "SELECT sum(count) AS value_sum FROM statistics where YEAR(st_date) = $i ";
$sql_sel = mysqli_query($conn,$sql);
while($rows = mysqli_fetch_assoc($sql_sel)) {
if($i == $n-2) {
$data[] = array('value'=> $rows['value_sum'], 'color'=>'#337AB7');
}
else if($i == $n-1) {
$data[] = array('value'=> $rows['value_sum'], 'color'=>'#FC8213');
}
else if($i == $n) {
$data[] = array('value'=> $rows['value_sum'], 'color'=>'#8BC34A');
}
}
}
?>
<script>
var pieData = <?php json_encode($data) ?>;
new Chart(document.getElementById("pie").getContext("2d")).Pie(pieData);
</script>
This should help you out:
<?php
// Store the array for the pie data within PHP at first
$js_pie_data = [];
// Define colors
$colors = [
date('Y') => '8BC34A', // current year
(date('Y') - 1) => 'FC8213', // last year
(date('Y') - 2) => '337AB7' // 2 years ago
];
$sql = "SELECT
YEAR(st_date) as `year`, -- get year from DB, makes life simpler :)
sum(count) AS value_sum
FROM
statistics
WHERE
YEAR(st_date) >= (YEAR(CURDATE())-2) -- get all records from 2 years ago to today
GROUP BY
YEAR(st_date) -- group by year so that our sum() above will work";
$sql_sel = mysqli_query($conn,$sql);
while($rows = mysqli_fetch_assoc($sql_sel))
{
// keep adding entries to the pie data
$js_pie_data[] = [
'value' => $rows['value_sum'],
'color' => '#'.$colors[$rows['year']] // based on year from DB, pick a color
];
}
echo '<script>
var pieData = '.json_encode($js_pie_data).'; // this will output a properly formatted JS array which will be understood by JS with no problem
new Chart(document.getElementById("pie").getContext("2d")).Pie(pieData);
</script>';
1)You can create array in php side.
2)Then convert it as json string.
3)Define javascript variable with that json string
4)Convert it as object with JSON.parse
5)Insert it in option
<?php
$db = Array("1","2","3");
$out = Array();
$x = 0;
foreach($db as $vals){
if($x == 1){
$out[] = Array("value"=>$vals,"color"=>"#bfbfbf");
}
if($x == 2){
$out[] = Array("value"=>$vals,"color"=>"#00ffff");
}
if($x == 3){
$out[] = Array("value"=>$vals,"color"=>"#fff00");
}
if($x == 3){$x = 0;}
$x++;
}
echo "
<script language='javascript'>
var stat_str = '".json_encode($out)."';
var stat_obj = JSON.parse(stat_str);
// then you can insert stat_obj if you need object into stats
</script>";
?>
in the model alert is not working. if condition is working,the only problem with the alert box, its not showing the dialog box.Please help..
public function setJumlahPenumpang ($idJadwal,$idPemesanan,$jml,$booked,$selected){
$data1 = $this->db->query('select p.jumlah_kursi, j.jumlah_penumpang, p.harga from tb_po p JOIN tb_jadwal j ON j.id_po = p.id_bus WHERE j.id_jadwal ='. $idJadwal);
foreach ($data1->result_array() as $dataa1) {
$tersedia = $dataa1['jumlah_kursi'] - $dataa1['jumlah_penumpang'];
if($tersedia < $jml){
?>
<script type="text/javascript">
document.location = '<?php echo base_url(); ?>proses/cekKode1/<?php echo $idPemesanan ?>';
alert("Tidak ada Bus Beroperasi");
</script>
<?php
}else{
$data3 = $dataa1['harga'] * $jml;
$this->db->query('update tb_pemesanan set harga = '.$data3.' where id_pemesanan = '.$idPemesanan);
$data = $this->db->query('select jumlah_penumpang from tb_jadwal where id_jadwal ='. $idJadwal);
$this->db->query("update tb_jadwal set booked = '".$booked."' where id_jadwal = ".$idJadwal);
$this->db->query("update tb_pemesanan set kursi = '".$selected."' where id_pemesanan = ".$idPemesanan);
foreach ($data->result_array() as $dataa) {
$data2 = $dataa['jumlah_penumpang'] + $jml;
$this->db->query('update tb_jadwal set jumlah_penumpang = '.$data2.' where id_jadwal = '.$idJadwal);
}
}
}
}
Try Echo Before Script Tag I hope So it 'll work....
if($package_id == NULL) {
echo '<script type="text/javascript">
window.location.href = "'.base_url().'"
</script>';
return;
die();
}