ArshSingh Posted December 26, 2014 Author Share Posted December 26, 2014 (edited) Can I see the output of: SHOW FULL COLUMNS FROM members Run this statement via your mysql gui tool, phpmyadmin, mysql workbench or whatever you want. PS: Are you sure you're working on your local machine and your db server is a local one? yes im working on localhost and also my db is on local as i'm using MAMP PRO for mac ,, and btw , i do have also other functions which are working with databse and doing their work successfully and getting the result from database expect this one. will get you the columns structure. Edited December 26, 2014 by ArshSingh Quote Link to comment Share on other sites More sharing options...
jazzman1 Posted December 26, 2014 Share Posted December 26, 2014 we need to see the result of show columns! Quote Link to comment Share on other sites More sharing options...
ArshSingh Posted December 26, 2014 Author Share Posted December 26, 2014 we need to see the result of show columns! please see this screenshot for columns: http://prntscr.com/5l52ip Quote Link to comment Share on other sites More sharing options...
jazzman1 Posted December 26, 2014 Share Posted December 26, 2014 Sorry for the delay I wasn't at home. Are you absolutely sure that you have only one table called - "members" in this local db server? Can I also see your database credentials? There is nothing wrong with the structure in this screenshot. Quote Link to comment Share on other sites More sharing options...
Solution kicken Posted December 26, 2014 Solution Share Posted December 26, 2014 public function profile_view($user_id = null) { $stmt = $this->_db->prepare('SELECT memberID,username,email,profile_pic,active FROM members WHERE memberID = :user_id AND active="YES"'); $params = array(':user_id' => $user_id); var_dump($params); $stmt->execute($params); $row = $stmt->fetch(PDO::FETCH_ASSOC); var_dump($row); if ($row){ $user_det = (object)array( 'username'=> $row['username'] ,'email'=>$row['email'] ,'profile_pic'=>$row['profile_pic'] ,'id'=> $row['memberID'] ,'active'=>$row['active'] ); return $user_det; } else { var_dump($stmt->errorInfo()); } } Since you only want one row, there is no need for the loop. Check the return value of the fetch call to be sure a row was actually found. I've added a few var_dumps at places that might be helpful in resolving your problem. Quote Link to comment Share on other sites More sharing options...
mac_gyver Posted December 26, 2014 Share Posted December 26, 2014 the symptom you are seeing is likely due to a page being requested twice, once with and once without the expected input data. and given that you are doing url rewriting, with your locahost/easy/u/5, this is even more likely. if you look in your web server's access log, i'm betting you have two requests for your page, one with and one without the correct get query string on it. you may even have a get query string that has added a space character as part of the value. if so, it's possibly due to a faulty url rewriting rule, or your page redirecting to itself a second time, or the browser requesting the page twice. however, ALL code should ALWAYS validate data before trying to use it. you need to make sure there's an expected value for the user id before ever calling the class method. making sure that the value contains all numerical characters (see ctype_digit()) and is not an empty string will at least verify that it contains a likely user id. also, why are you using a default $user_id = null call time parameter for a function that requires a value for that parameter to work (defining default parameter values are intended for optional parameters, where the function will still perform its intended purpose when the parameter is not present), assigning one variable to another ($user = $user_id;), and then looping over a result set that by definition will at most be one row? when we see code that contains extra lines and statements that don't accomplish anything useful, we wonder what you were thinking when you typed those things into your code? code should just contain those things that are necessary and that contribute to the goal that code is trying to accomplish. Quote Link to comment Share on other sites More sharing options...
ArshSingh Posted January 4, 2015 Author Share Posted January 4, 2015 there was nuthing to do rewrite things , noob me was using while loop . thnx to kicken now all is working good and smoothly . kicken 's answer worked Quote Link to comment 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.