I need information for WHERE in mysql_query.

Ask about a PHP problem here.
Post Reply
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

I need information for WHERE in mysql_query.

Post by wizzuriz »

Hello all.

I like to hear if there is anyone that can help me out with my problem here.

I like to show the user_information on the protected.php page.
Now I can show the user information but only from line one in the database table, if I try to add the
where `user_name` = '{$user}'"); I just don´t know how to call the $user so it will match the user that is logged in.
<?php
include ('core/init.inc.php');

?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <div>
            <p>
                hejsa du er logged ind som <?php echo $_SESSION['username']; ?>
            </p>
        </div>
        <div>
            <h1>Welcome         <?php echo $_SESSION['username']; ?></h1>
            <p>Username:        <?php echo $row['user_name']; ?></p>
                <p>First name:  <?php echo $row['user_firstname']; ?></p>
                <p>Last name:   <?php echo $row['user_lastname']; ?></p>
                <p>Weight:      <?php echo $row['user_weight']; ?></p>
                <p>Hight:       <?php echo $row['user_hight']; ?></p>
        </div>
        <?php
                echo 'log out ? <a href="logout.php">logout here</a>';
        ?>
    </body>
</html>
This is the code in the user_inc.php file

// this is not a function or class if I put it in a function I get a error on protected.php 
$query = "SELECT * FROM `users`"; 
	 
$result = mysql_query($query) or die(mysql_error());

$row = mysql_fetch_array($result) or die(mysql_error());

Please let me know if you know how to make this work.

Best regards
Wizzuriz.
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

The code in the user_inc.php does need to be in a function, then you can pass the username or id to that function and have it return the information you need.
Image
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

Re: I need information for WHERE in mysql_query.

Post by wizzuriz »

Hey again.

My questing is where do I get the username from? $user?

How would I make the function?

please let me know.

best regards
wizzuriz
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

You have the username in the session don't you, $_SESSION['username'] ?
Image
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

Re: I need information for WHERE in mysql_query.

Post by wizzuriz »

Hi Jacek,

First I like to say that I really appreciate your help.

Now after watching your video on user profile (2)

I Don't understand why my function don't work, I did check for syntax errors and there is non but I get a error of the information I pass in to the function is not valid.

ERROR:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/user_system/core/inc/user.inc.php on line 144
$user_email = $_SESSION['email'];

//fetches all of the users from the table.

function fetch_users(){
    $result = mysql_query('SELECT `user_id` AS `id`,
                                  `user_email` AS `email`
                                  FROM `users`');
    $users = array();
    
    while (($row = mysql_fetch_assoc($result)) !== false){
        $users[] = $row;
    }
    return $users;
}
-------------------- fetch user function works just fine I see the list of all user from the table. ------------
// fetches profile information for the given user.
function get_user_information($user_email){
    $user_email = htmlentities($user_email);
    
    $sql = "SELECT
                `user_firstname` AS `firstname`,
                `user_lastname` AS `lastname`,
                `user_weight` AS weight`,
                `user_hight` AS `ight`
                FROM `users`
                WHERE `user_email` = {$user_email}";
    
    $result = mysql_query($sql);
    
    return mysql_fetch_assoc($result);
    
}

$user_information = get_user_information($user_email);

why is parameter 1 not a resource, how does it becomes a boolean is it because it don't see the $user_email? I can each it and it will show the email of the user that is logged in.

I really need some help here.

Best regards
Wizzuriz.
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

This happens when a query fails, mysql_query returns false (a boolean value) and not the result resource expected.

Add
echo mysql_error();
after the failing query and it will tell you what's wrong.
Image
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

Re: I need information for WHERE in mysql_query.

Post by wizzuriz »

This is my function that don´t work.
$u_email = $_SESSION['email'];
// $u_email I believe is the problem it don't work in the function but it works fine out of the function. 

function get_user_information($u_email){
    
// get the current users information from batabase. 
$result = mysql_query("SELECT * FROM users
 WHERE user_email='$u_email'") or die(mysql_error());  

$row = mysql_fetch_array( $result );
}
I just don't understand how it does not know the value of the §u_email, I do pass it in the information into the function in the parameter (). Should I use $global to pass it in?

If I remove the function line my information will display just fine but then its not a function.. ( what is the bad and good about function or not a function? I can still show the information.

I am getting so much new information each day, but still there is basic things I don't understand 100% yet.

best regards
wizzuriz.
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

wizzuriz wrote:Should I use $global to pass it in?
No that doesn't make any sense :?

Can you post the code where you call this function ?
Image
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

Re: I need information for WHERE in mysql_query.

Post by wizzuriz »

sure this is how I display it when it ant in the function

<td>
<?php echo $row['user_firstname']?>
</td>
<td>
<?php echo $row['user_weight']?>
</td>

this is the code

    $u_email = $_SESSION['email'];
    //function get_user_information($u_email){
     $result = mysql_query("SELECT * FROM users
WHERE user_email='$u_email'") or die(mysql_error());  
 
$row = mysql_fetch_array( $result );
//}
when not in the function it display the information just fine.

best regards
Wizzuriz.
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

Okay, but where do you use the get_user_information function ?
Image
wizzuriz
Posts: 53
Joined: Mon Jul 25, 2011 4:22 pm

Re: I need information for WHERE in mysql_query.

Post by wizzuriz »

I use it on the protected.php page.

if I don't make it a function it will display just fine..

Best regards
wizzuriz
User avatar
jacek
Site Admin
Posts: 3262
Joined: Thu May 05, 2011 1:45 pm
Location: UK
Contact:

Re: I need information for WHERE in mysql_query.

Post by jacek »

wizzuriz wrote:I use it on the protected.php page.
Then can you post how you are using it ?
Image
Post Reply