How to display dynamic data based on MySQL entries?

Hi all,
I am attempting to create an alert display monitor. The admin interface allows me to add the following fields to mysql:
 id  date  time  location  description  severity  publish

Publish is meant as an on/off switch to turn the display on or off.
Here is a dump of mysql table
----------------------
--
-- Table structure for table `outages`
--

CREATE TABLE IF NOT EXISTS `outages` (
  `id` int(11) NOT NULL auto_increment,
  `date` date NOT NULL,
  `time` time NOT NULL,
  `location` varchar(50) NOT NULL,
  `description` text NOT NULL,
  `severity` varchar(50) NOT NULL,
  `publish` varchar(5) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Dumping data for table `outages`
--

INSERT INTO `outages` (`id`, `date`, `time`, `location`, `description`, `severity`, `publish`) VALUES
(1, '2009-07-10', '09:41:00', 'Charlotte', 'test 1', 'Low', 'N'),
(2, '2009-07-13', '08:00:59', 'Jacksonville', 'Test Red', 'Urgent', 'N'),
(3, '2009-07-13', '08:01:16', 'Jacksonville', 'Test Orange', 'High', 'Y'),
(4, '2009-07-13', '08:01:33', 'Jacksonville', 'Test Yellow', 'Medium', 'Y'),
(5, '2009-07-13', '08:01:47', 'Jacksonville', 'Test Blue', 'Low', 'Y'),
(6, '2009-07-13', '08:02:00', 'Jacksonville', 'Test Green', 'No Issues', 'Y');
----------------------
and in the code I have put my test query page.
What I want, is to do a loop through the records and print the last active alert. What is the best way to accomplish this? The way the code is right now, all it echos is the first record, even if I change the publish parameter.

Thanks for the help
<?php require_once('Connections/conUDS.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
 
mysql_select_db($database_conUDS, $conUDS);
$query_rsBulletins = "SELECT * FROM outages";
$rsBulletins = mysql_query($query_rsBulletins, $conUDS) or die(mysql_error());
$row_rsBulletins = mysql_fetch_assoc($rsBulletins);
$totalRows_rsBulletins = mysql_num_rows($rsBulletins);
?>
<style type="text/css">
<!--
#urgent {
	font-weight: bold;
	color: #C00;
}
#high {
	font-weight: bold;
	color: #F60;
}
#medium {
	font-weight: bold;
	color: #FF0;
}
#low {
	font-weight: bold;
	color: #0CF;
}
#allgreen {
	font-weight: bold;
	color: #093;
}
-->
</style>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing Alert Query</title>
<link href="css/helpdesk.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
 
<p>This page is for testing the alert query. </p>
 
 
<code>
	<?php
        if ($row_rsBulletins['publish'] = "Y") {
            if ($row_rsBulletins['severity'] = "Urgent") {
                echo "<div id=\"urgent\">I am a red alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "High") {
                echo "<div id=\"high\">I am a orange alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "Medium") {
                echo "<div id=\"medium\">I am a yellow alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "Low") {
                echo "<div id=\"low\">I am a blue alert!</div>";
            }
        } else if ($row_rsBulletins['publish'] = "N") {
            echo "<div id=\"allgreen\">There are no reported outages.</div>";
        }
    ?>
</code>
 
 
 
</body>
</html>

Open in new window

LVL 2
udsfsgAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

flob9Commented:
Try this.
<?php require_once('Connections/conUDS.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
 
 
?>
<style type="text/css">
<!--
#urgent {
        font-weight: bold;
        color: #C00;
}
#high {
        font-weight: bold;
        color: #F60;
}
#medium {
        font-weight: bold;
        color: #FF0;
}
#low {
        font-weight: bold;
        color: #0CF;
}
#allgreen {
        font-weight: bold;
        color: #093;
}
-->
</style>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing Alert Query</title>
<link href="css/helpdesk.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
 
<p>This page is for testing the alert query. </p>
 
 
<code>
        <?php
 
mysql_select_db($database_conUDS, $conUDS);
$query_rsBulletins = "SELECT * FROM outages WHERE publish = 'Y' ORDER BY date DESC LIMIT 10"; /* 10 last published, for example */ 
$rsBulletins = mysql_query($query_rsBulletins, $conUDS) or die(mysql_error());
 
$totalRows_rsBulletins = mysql_num_rows($rsBulletins);
 
while($row_rsBulletins = mysql_fetch_assoc($rsBulletins))
{
        
        if ($row_rsBulletins['publish'] = "Y") {
            if ($row_rsBulletins['severity'] = "Urgent") {
                echo "<div id=\"urgent\">I am a red alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "High") {
                echo "<div id=\"high\">I am a orange alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "Medium") {
                echo "<div id=\"medium\">I am a yellow alert!</div>";
            }
            else if ($row_rsBulletins['severity'] = "Low") {
                echo "<div id=\"low\">I am a blue alert!</div>";
            }
        } else if ($row_rsBulletins['publish'] = "N") {
            echo "<div id=\"allgreen\">There are no reported outages.</div>";
        }
 
}
    ?>
</code>
 
 
 
</body>
</html>

Open in new window

0
udsfsgAuthor Commented:
ok, that displays the 4 records of 6 in the database maked as publish="Y", but it doesn't differential between the different typs of alerts. (Urgent, High, Medium, Low)
Here is a picture of the output.

repeats4times.gif
0
udsfsgAuthor Commented:
If I change the code like this, I get al of them to post.
<?php require_once('Connections/conUDS.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
 
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
 
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testing Alert Query</title>
<link href="css/helpdesk.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
#urgent {
        font-weight: bold;
        color: #C00;
}
#high {
        font-weight: bold;
        color: #F60;
}
#medium {
        font-weight: bold;
        color: #FF0;
}
#low {
        font-weight: bold;
        color: #0CF;
}
#allgreen {
        font-weight: bold;
        color: #093;
}
-->
</style>
</head>
 
<body>
 
<h1>This page is for testing the alert query. </h1>
 
 
<code>
<?php
mysql_select_db($database_conUDS, $conUDS);
$query_rsBulletins = "SELECT * FROM outages ORDER BY date DESC LIMIT 10"; /* 10 last published, for example */ 
$rsBulletins = mysql_query($query_rsBulletins, $conUDS) or die(mysql_error());
 
$totalRows_rsBulletins = mysql_num_rows($rsBulletins);
 
while($row_rsBulletins = mysql_fetch_assoc($rsBulletins))
{
	if ($row_rsBulletins['publish'] == "Y") {
		if ($row_rsBulletins['severity'] == "Urgent") {
        	echo "<div id=\"urgent\">I am a red alert!</div>";
		}
    	else if ($row_rsBulletins['severity'] == "High") {
        	echo "<div id=\"high\">I am a orange alert!</div>";
    	}
    	else if ($row_rsBulletins['severity'] == "Medium") {
       		echo "<div id=\"medium\">I am a yellow alert!</div>";
     	}
   		else if ($row_rsBulletins['severity'] == "Low") {
     		echo "<div id=\"low\">I am a blue alert!</div>";
		}
		else {
			echo "<div id=\"allgreen\">There are no reported outages.</div>";
		}
	} else {
		echo "<div id=\"allgreen\">There are no published alerts.</div>";
	}
}
?>
</code>
 
 
 
</body>
</html>

Open in new window

0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

udsfsgAuthor Commented:
All colors outputted.
allcolors.gif
0
flob9Commented:
Yes, didn't check the wrong single "=" compare statements, sorry.

the line "if ($row_rsBulletins['publish'] == "Y")" is also useless, since this is already filtered by the SQL query.

To have the "There are no published alerts." you need to do something like this :

$query_rsBulletins = "SELECT * FROM outages ORDER BY date DESC LIMIT 10"; /* 10 last published, for example */ 
$rsBulletins = mysql_query($query_rsBulletins, $conUDS) or die(mysql_error());
 
$totalRows_rsBulletins = mysql_num_rows($rsBulletins);
 
if($totalRows_rsBulletins > 0)
{
	while($row_rsBulletins = mysql_fetch_assoc($rsBulletins))
	{
		if ($row_rsBulletins['severity'] == "Urgent") {
        	echo "<div id=\"urgent\">I am a red alert!</div>";
		}
    	else if ($row_rsBulletins['severity'] == "High") {
        	echo "<div id=\"high\">I am a orange alert!</div>";
    	}
    	else if ($row_rsBulletins['severity'] == "Medium") {
       		echo "<div id=\"medium\">I am a yellow alert!</div>";
     	}
   		else if ($row_rsBulletins['severity'] == "Low") {
     		echo "<div id=\"low\">I am a blue alert!</div>";
		}
		else {
			echo "<div id=\"allgreen\">There are no reported outages.</div>";
		}
	}
}
else
{
	echo "<div id=\"allgreen\">There are no published alerts.</div>";
}

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
udsfsgAuthor Commented:
I'd say you above response is close. I just made a small change to add the WHERE statement to the query, and I pulled the 1st else statement.
This seems to be giving me the desired look.
Thanks Flob9!

<?php
mysql_select_db($database_conUDS, $conUDS);
$query_rsBulletins = "SELECT * FROM outages WHERE publish = 'Y' ORDER BY date DESC LIMIT 10"; /* 10 last published, for example */ 
$rsBulletins = mysql_query($query_rsBulletins, $conUDS) or die(mysql_error());
 
$totalRows_rsBulletins = mysql_num_rows($rsBulletins);
 
if($totalRows_rsBulletins > 0)
{
	while($row_rsBulletins = mysql_fetch_assoc($rsBulletins))
	{
		if ($row_rsBulletins['severity'] == "Urgent") {
        	echo "<div id=\"urgent\">I am a red alert!</div>";
		}
    	else if ($row_rsBulletins['severity'] == "High") {
        	echo "<div id=\"high\">I am a orange alert!</div>";
    	}
    	else if ($row_rsBulletins['severity'] == "Medium") {
       		echo "<div id=\"medium\">I am a yellow alert!</div>";
     	}
   		else if ($row_rsBulletins['severity'] == "Low") {
     		echo "<div id=\"low\">I am a blue alert!</div>";
		}
		
	}
} else {
	echo "<div id=\"allgreen\">There are no published alerts.</div>";
}
?>

Open in new window

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.