PHP database selection issue

Posted by Citroenfris on Stack Overflow See other posts from Stack Overflow or by Citroenfris
Published on 2011-11-30T01:48:10Z Indexed on 2011/11/30 1:50 UTC
Read the original article Hit count: 237

Filed under:
|

I'm in a bit of a pickle with freshening up my PHP a bit, it's been about 3 years since I last coded in PHP. Any insights are welcomed! I'll give you as much information as I possibly can to resolve this error so here goes!

Files

  • config.php
  • database.php
  • news.php
  • BLnews.php
  • index.php

Includes

  • config.php -> news.php
  • database.php -> news.php
  • news.php -> BLnews.php
  • BLnews.php -> index.php

Now the problem with my current code is that the database connection is being made but my database refuses to be selected. The query I have should work but due to my database not getting selected it's kind of annoying to get any data exchange going!

database.php

    <?php
class Database {

    //-------------------------------------------
    //    Connects to the database
    //-------------------------------------------
    function connect() {
        if (isset($dbhost) && isset($dbuser) && isset($dbpass)) {
            $con = mysql_connect($dbhost, $dbuser, $dbpass) or die("Could not connect: " . mysql_error());
        }
    }// end function connect

    function selectDB() {
        if (isset($dbname) && isset($con)) {
            $selected_db = mysql_select_db($dbname, $con) or die("Could not select test DB");
        }
    }
} // end class Database
?>

News.php

<?php
// include the config file and database class
include 'config.php';
include 'database.php';

...
?>

BLnews.php

<?php
// include the news class
include 'news.php';
// create an instance of the Database class and call it $db
$db = new Database;
$db -> connect();
$db->selectDB();

class BLnews {

    function getNews() {
        $sql = "SELECT * FROM news";
        if (isset($sql)) {
            $result = mysql_query($sql) or die("Could not execute query. Reason: " .mysql_error());
        }
        return $result;
    }
?>

index.php

<?php
...

include 'includes/BLnews.php';
$blNews = new BLnews();
$news = $blNews->getNews();
?>

...
<?php 
        while($row = mysql_fetch_array($news))
        {
        echo '<div class="post">';
        echo '<h2><a href="#"> ' . $row["title"] .'</a></h2>';
        echo '<p class="post-info">Posted by <a href="#"> </a> | <span class="date"> Posted on <a href="#">' . $row["date"] . '</a></span></p>';
        echo $row["content"];
        echo '</div>';
        }
        ?>

Well this is pretty much everything that should get the information going however due to the mysql_error in $result = mysql_query($sql) or die("Could not execute query. Reason: " .mysql_error()); I can see the error and it says:

Could not execute query. Reason: No database selected

I honestly have no idea why it would not work and I've been fiddling with it for quite some time now. Help is most welcomed and I thank you in advance!

Greets

Lemon

© Stack Overflow or respective owner

Related posts about php

Related posts about database-connection