bass_avb Posted October 16, 2009 Share Posted October 16, 2009 Hey all, I am learning php and my first goal is to create a simple CMS. At the moment I am stuck on not being able to pull page names and their id`s from my DB and combine them into a list of links (like so/manage_pages.php?page_id=1) so I could grab id`s later for update and delete pages. Problem is when I load the page none of the links are displayed. My php5 is set up so that I could see all of the errors but there are none displayed nor is there anything in the log. Here are the function I am using: <?php function confirm_query($result_set) { if (!$result_set) { die("Database query failed: " . mysql_error()); } } function get_all_pages() { global $connection; mysql_select_db("content_MS", $connection); $query = "SELECT * FROM pages ORDER BY id ASC"; $result_set = mysql_query($query, $connection); confirm_query($result_set); return $result_set; } function list_pages(){ global $connection; $result = get_all_pages(); $output = "<div>"; $output .= "<p>Select the page you would like to edit:</p>"; while($row = mysql_fetch_array($result)) { $output .="<ul>"; $output .= "<li>"; $output .= "<a href=\"manage_pages.php?page=" . urlencode($row["id"]) ."\">{$row["page_name"]}</a></li>"; $output .="</ul>"; } $output .="</div>"; return $output; } ?> Then I simply echo list_pages function on a page: <?php include ("includes/header.php"); ?> <div id="content"> <div class="in"> <h2>This is the main content</h2> <?php list_pages();?> </div> </div> <?php include ("includes/footer.php"); ?> And below is the html code I see when I load the page: <!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" lang="en" xml:lang="en"> <head> <title>Content Manager - Manage Pages</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="css/back_css.css" media="screen" /> </head> <body> <div id="wrapper"> <div id="header"> <div class="in"> <h1>Welcome To Your Content Manager!</h1> </div> </div> <div id="content-wrapper"> <div id="content"> <div class="in"> <h2>This is the main content</h2> </div> </div> </div> <div id="left"><div class="in"> <h2>Menu</h2> <ul> <li><a href="manage_pages.php?name=Manage Pages"> Manage Pages </a></li> <li><a href="manage_menu.php?name=Manage Menu"> Manage Menu </a></li> <li><a href="manage_albums.php?name=Manage Albums"> Manage Albums </a></li> <li><a href="manage_videos.php?name=Manage Videos"> Manage Videos</a></li> <li><a href="manage_gigs.php?name=Manage Gigs"> Manage Gigs </a></li> <li><a href="manage_news.php?name=Manage News"> Manage News</a></li> </ul> </div></div> <div id="footer"><span>by AB</span></div> </div> </body> </html> Any ideas ? Thanks in advance ! --best A Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/ Share on other sites More sharing options...
DavidAM Posted October 16, 2009 Share Posted October 16, 2009 Your list_pages function returns the text to be output. You need to echo it to the page: <?php echo list_pages();?> Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/#findComment-937843 Share on other sites More sharing options...
bass_avb Posted October 16, 2009 Author Share Posted October 16, 2009 Hi, I did. This is the code for manage_pages.php <?php include ("includes/header.php"); ?> <div id="content"> [b]<div class="in"> <h2>This is the main content</h2> <?php list_pages();?> </div>[/b] </div> <?php include ("includes/footer.php"); ?> BTW... I also tried to combine everything into one function but same result: <?php function list_pages(){ $DB_SERVER = "****"; $DB_USERNAME = "*****"; $DB_PASS = "****"; $connection = mysql_connect($DB_SERVER, $DB_USERNAME, $DB_PASS); if (!$connection) die ('Could not connect:' . mysql_error()); mysql_select_db("content_MS",$connection); $query = "SELECT * FROM pages ORDER BY id ASC"; $result = mysql_query($query,$connection); $output = "<div>"; $output .= "<p>Select the page you would like to edit:</p>"; while($row = mysql_fetch_array($result)) { $output ="<ul>"; $output .= "<li>"; $output .= "<a href=\"manage_pages.php?page=" . urlencode($row["id"]) ."\">{$row["page_name"]}</a></li>"; $output .="</ul>"; } $output .="</div>"; return $output; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/#findComment-937845 Share on other sites More sharing options...
Coreye Posted October 16, 2009 Share Posted October 16, 2009 You have <?php list_pages();?> Like David says, that needs to be <?php echo list_pages();?> Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/#findComment-937848 Share on other sites More sharing options...
bass_avb Posted October 16, 2009 Author Share Posted October 16, 2009 HAHAHA OMG... I have been staring at the page for like two hours and didnt catch that one. It works now but there is one problem though. I have 2 records in the table but only one of them is showing (record 2) and the following is not getting outputted $output = "<div>"; $output .= "<p>Select the page you would like to edit:</p>"; This is what page source looks like : <div id="content-wrapper"> <div id="content"> <div class="in"> <h2>This is the main content</h2> <ul><li><a href="manage_pages.php?page=2">Bio</a></li></ul></div> </div> </div> [\code] So <div> and "Select the page you would like to edit:" is not showing. Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/#findComment-937851 Share on other sites More sharing options...
bass_avb Posted October 16, 2009 Author Share Posted October 16, 2009 Never mind just fixed it !!! Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/177863-solved-cant-display-mysql-data/#findComment-937853 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.