Hello,
I have a function I am writing. This is just to help me be able to dynamically put content on a webpage. Perhaps I am proceeding about this the incorrect way but I am running into an error and am wondering if anyone can point me in the correct direction or help me resolve this issue.
Issue: When I call the same function twice I receive a No Database Found error.
Notes: When I simply call the function 1 time there is no issue. It works perfectly. So if I remove the dbcon(‘indexpara1’); then the title shows up no problem or if I remove the dbcon(‘title’); then the function works no problem to display the paragraph text.
I asked this in another forum and I was told to separate the database connect portion of the function and use an include at the top of every page. I asked how to do that without ruining the integrity of the function since that whole function is database connect and have not heard back.
Request: I would like to know how to properly call that function more than once to be able to display multiple items throughout the webpage such as title, meta tags, first paragraph text, second paragraph text, etc etc. Is there a better way of performing the task I am attempting to perform such as making a class or something like that?
Current website address: scrfix.webhop.net (don’t forget to put the http:// I do not wish it to be a link. I would rather the search engines not pick it up since it is only temporarily there.)
Thank you for any help you can provide.
Code for webpage
Please note that I have removed a bunch of the div’s, text and paragraphs that do not pertain to my question. I have also utilized psuedo information in place of the private information below.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<?php
include("functions.php");
dbcon('title');
include("meta.php");
include("js.php");
include("css.php");
?>
<script type="text/javascript">
function suppress_errors() {return true;}
window.onerror=suppress_errors;
</script>
</head>
<body>
<?php dbcon("indexpara1"); ?>
<p>This is some text that did not come from the database. This is typed directly into the website.</p>
</body>
</html>
dbcon function:
$user_name = "username";
$password = "password";
$database = "database";
$server = "localhost";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
/*************************************************************************************/
// //
// The dbcon function is made to make SEO a little easier and requires a database //
// to be set up. The database that is used in the making of this script is MySQL 5.1 //
// //
// The script is written with uniformity in mind. The database rows, case statement //
// and parameter sent to the function should all be the same name. //
// //
/*************************************************************************************/
// Begin the database connection function (ie. dbcon)
// The dbcon function accepts 1 parameter. This is required when you call the function.
// This parameter name should be the same name as your case statement and the row name in the database table.
function dbcon($data) {
global $user_name, $password, $database, $server, $db_handle, $db_found;
// We are using a switch case statement to decipher which parameter you sent through the function.
switch($data) {
case "title":
$codeop = "<".$data.">";
$codecl = "</".$data.">";
$default = "<title>This is the default title if no title is found in the database or we cannot make a connection</title>"; // Enter a default title here in case we cannot make a connection to the database.
$db_table = 'table1';
break;
// You can add as many cases as you would like or remove the ones you do not want. In the example below there are 4 paragraphs on the index page.
case "indexpara1":
case "indexpara2":
case "indexpara3":
case "indexpara4":
$codeop = "<p>";
$codecl = "</p>";
$default = "This is the default text if there is no text for the index page paragraph found or if we cannot make a database connection.";
$db_table = 'table2';
break;
default:
echo "The website cannot find information for" . $data . "Please contact the website administrator or webmaster about this error.";
}
// Now we start our database connection. The ""'s below must stay there. You will only need to change the following below:
if ($db_found) {
$open = @mysql_connect($server,$user_name,$password);
if (!$open) {
// If we found a database but cannot open the database then use the default setting and echo a statement.
echo $default;
echo("Website Error: The website cannot connect to database! Please contact the website administrator about this error.");
exit();
}
elseif ($open) {
$SQL = mysql_query("SELECT ". $data ." FROM " . $db_table) or die(mysql_error());
$dbinfo = mysql_fetch_array($SQL);
if(!empty($dbinfo[$data])) {
echo $codeop . stripslashes($dbinfo[$data]) . $codecl;
}
// If someone enters a blank entry into the submission form and it is not caught by JavaScript verification the utilize the default.
else
echo $default;
// Close the database connection.
mysql_close($db_handle);
}
}
else {
// if we cannot find a database then we echo the default and close the database.
echo $default;
mysql_close($db_handle);
}
}