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 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();?> 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; } ?> 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();?> 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. 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! 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
Archived
This topic is now archived and is closed to further replies.