rockstarrem Posted February 9, 2010 Share Posted February 9, 2010 Hello, I'm having a really big problem that I can't figure out. Basically, my first code snippet works fine, it gets the navigation from the database with no problem. But, when I'm trying to get another table from the database, I get this: Fatal error: Call to a member function fetch_row() on a non-object in C:\wamp\www\domenicf.com\pages\762134.php on line 29 The navigation fetches fine, but the "pagecontent" doesn't. Here's my code. <html> <head> <title> </title> <link href='../css/index.css' type='text/css' rel='stylsheet' /> <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> </head> <body> <div id='banner' /> </div> <div align='center' id='nav' /> <?php $mysqli = new mysqli(); $mysqli->connect('localhost', 'root', '', 'jesus'); error_reporting(E_ALL); $query = 'SELECT name, url FROM navigation ORDER by id'; $result = $mysqli->query($query, MYSQLI_STORE_RESULT); while(list($name, $url) = $result->fetch_row()) printf("<a href='%s'>%s</a> | ", $url, $name); $result->close(); ?> </div> <div id='content' /> <?php $mysqli = new mysqli(); $mysqli->connect('localhost', 'root', '', 'jesus'); error_reporting(E_ALL); $newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); while(list($id, $pcontent) = $result2->fetch_row()) printf("%s %s", $id, $pcontent); if ($mysqli->errno) { printf("Unable to connect to the database:<br /> %s", $mysqli->error); exit(); } $result2->close(); ?> </div> </body> </html> Thanks! Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/ Share on other sites More sharing options...
sader Posted February 9, 2010 Share Posted February 9, 2010 is your table realy called 'pages_sadasdasd' ? Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1009693 Share on other sites More sharing options...
rockstarrem Posted February 10, 2010 Author Share Posted February 10, 2010 is your table realy called 'pages_sadasdasd' ? Yes, the CMS is written that way. Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1009799 Share on other sites More sharing options...
sader Posted February 10, 2010 Share Posted February 10, 2010 U could try print mysql error after executing query. Something like this //bla bla bla $newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); echo mysql_error(); //rest part of the code any errors showed up? Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1009823 Share on other sites More sharing options...
rockstarrem Posted February 10, 2010 Author Share Posted February 10, 2010 U could try print mysql error after executing query. Something like this //bla bla bla $newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); echo mysql_error(); //rest part of the code any errors showed up? Nope, no errors. Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010041 Share on other sites More sharing options...
PFMaBiSmAd Posted February 10, 2010 Share Posted February 10, 2010 mysql_error() has nothing to do with using the mysqli OOP. You would need to use $mysqli->error Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010044 Share on other sites More sharing options...
rockstarrem Posted February 10, 2010 Author Share Posted February 10, 2010 mysql_error() has nothing to do with using the mysqli OOP. You would need to use $mysqli->error $mysqli->error(); returns this: Fatal error: Call to undefined method mysqli::error() in C:\wamp\www\domenicf.com\test.php on line 7 <?php //bla bla bla $mysqli = new mysqli(); $mysqli->connect("localhost", "root", "", "jesus"); $newquery = 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'; $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); echo $mysqli->error(); //rest part of the code ?> Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010049 Share on other sites More sharing options...
sader Posted February 10, 2010 Share Posted February 10, 2010 I can't see concrete mistake in your code(or maybe I am blind), the way I would search for problem I would try then for example $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); $result2->fetch_row(); echo $mysqli->error; //... or u could try execute your query 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id' via phpMyAdmin(or some other tool) and see what result is Anyway table name `pages_sadasdasd` is realy suspicious couse it looks like random s*it and it's hard to beleave that some CMS names tables like this... plus name of table `navigation` looks pretty normal and self explanatory. Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010050 Share on other sites More sharing options...
rockstarrem Posted February 10, 2010 Author Share Posted February 10, 2010 I can't see concrete mistake in your code(or maybe I am blind), the way I would search for problem I would try then for example $result2 = $mysqli->query($newquery, MYSQLI_STORE_RESULT); $result2->fetch_row(); echo $mysqli->error; //... or u could try execute your query 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id' via phpMyAdmin(or some other tool) and see what result is Anyway table name `pages_sadasdasd` is realy suspicious couse it looks like random s*it and it's hard to beleave that some CMS names tables like this... plus name of table `navigation` looks pretty normal and self explanatory. I'll explain... The CMS takes user input, so if the page name is "sadasdasd" it will create a table "pages_sadasdasd". Edit: Epic failure. I sincerely thought it wasn't a MySQL problem, but the column was "pagecontent" instead of "postcontent". Sorry Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010183 Share on other sites More sharing options...
sader Posted February 10, 2010 Share Posted February 10, 2010 I dont know how much percently u are sure that it's not MySQL problem but what i see it's exactly this(course I may be wrong) Here how it goes: Error says "Call to a member function fetch_row() on a non-object" That means that variable $result2 is not a object and it doesn't have method fetch_row() (also it doesnt have any other methods/properties since $result2 is not object) Ok now let's look how and where we get $result2? By $mysqli->query($newquery, MYSQLI_STORE_RESULT); Since code above with almost exact logics worked fine I know that $mysqli->query returns object that u can fetch and work with on success. But in this case we have failure and only culprit (that I can think of)here is your sql 'SELECT id, postcontent FROM pages_sadasdasd ORDER by id'. I dont know what wrong with sql is but most possibe wrong field names,wrong table name or non existing table... Or maybe u mistspelled connection password? is that possible? Quote Link to comment https://forums.phpfreaks.com/topic/191530-fetch_row/#findComment-1010200 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.