Need help with PHP query to ySQL

Discussion in 'PHP' started by calvinmicklefinger, May 6, 2007.

  1. #1
    Hello,

    I am trying to create a dynamic list of fields and values for a logged in user. I use httaccess/htpasswd for basic authentication on a Linus server.

    The script should print or echo a line for each field, showing the name and the field value for the logged in user.

    I get the field names, but I keep getting a blank result for the field value.

    Can anyone advise me as to what I have left out of the code?

    Many thanks,
    Kirk Ward

    
    <?php
    $usr = $_SERVER['PHP_AUTH_USER'];
    $link = mysql_connect('localhost', 'my_dbuser', 'my_dbpassword');
    $fields = mysql_list_fields("members", "user_profile", $link);
    $columns = mysql_num_fields($fields);
    
    for ($i = 0; $i < $columns; $i++) {
        
    	$var1 = mysql_field_name($fields, $i);
    	$query = "SELECT $var1 FROM user_profile WHERE userid = $usr";
    	$var2 = mysql_query($query, $link);
    	
    	echo "Field Name=" . "'" . $var1 . "'" . " Field Value=" . "'" . $var2  . "'" . "<br /> \n";
    }
    ?>
    PHP:
     
    calvinmicklefinger, May 6, 2007 IP
  2. grandpa

    grandpa Active Member

    Messages:
    185
    Likes Received:
    3
    Best Answers:
    0
    Trophy Points:
    75
    #2
    try this...

    
    <?php
    $usr = $_SERVER['PHP_AUTH_USER'];
    $link = mysql_connect('localhost', 'my_dbuser', 'my_dbpassword');
    $fields = mysql_list_fields("members", "user_profile", $link);
    $columns = mysql_num_fields($fields);
    
    for ($i = 0; $i < $columns; $i++) {
       
        $var1 = mysql_field_name($fields, $i);
        $query = "SELECT $var1 FROM user_profile WHERE userid = $usr";
        $return = mysql_query($query, $link);
        $data = mysql_fetch_array($return);
        $var2 = data[$var1];
       
        echo "Field Name=" . "'" . $var1 . "'" . " Field Value=" . "'" . $var2  . "'" . "<br /> \n";
    }
    ?>
    
    Code (markup):
    or this

    
    <?php
    $usr = $_SERVER['PHP_AUTH_USER'];
    $link = mysql_connect('localhost', 'my_dbuser', 'my_dbpassword');
    $fields = mysql_list_fields("members", "user_profile", $link);
    $columns = mysql_num_fields($fields);
    
    for ($i = 0; $i < $columns; $i++) {
       
        $var1 = mysql_field_name($fields, $i);
        $query = "SELECT $var1 FROM user_profile WHERE userid = $usr";
        $return = mysql_query($query, $link);
        $data = mysql_fetch_row($return);
        $var2 = data[0];
       
        echo "Field Name=" . "'" . $var1 . "'" . " Field Value=" . "'" . $var2  . "'" . "<br /> \n";
    }
    ?>
    
    Code (markup):
    mysql_query($query, $link);
    this only execute the query, but not return the query result at all.
    you need function mysql_fetch_xxx to fetch the value

    hope this will help...
     
    grandpa, May 6, 2007 IP
  3. calvinmicklefinger

    calvinmicklefinger Peon

    Messages:
    5
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thanks Grandpa,

    But neither version worked. I even used "copy and paste" to make sure I didn't have any typo's from your code to my attempt.

    Any other ideas?
    Kirk
     
    calvinmicklefinger, May 6, 2007 IP
  4. abdussamad

    abdussamad Active Member

    Messages:
    543
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    60
    #4
    
    <?php
    $usr = $_SERVER['PHP_AUTH_USER'];
    $link = mysql_connect('localhost', 'my_dbuser', 'my_dbpassword');
    $fields = mysql_list_fields("members", "user_profile", $link);
    $columns = mysql_num_fields($fields);
    
    for ($i = 0; $i < $columns; $i++) {
       
        $var1 = mysql_field_name($fields, $i);
        $query = "SELECT $var1 FROM user_profile WHERE userid = '$usr'";
        $return = mysql_query($query, $link);
        $data = mysql_fetch_assoc($return);
        $var2 = $data[$var1];
       
        echo "Field Name=" . "'" . $var1 . "'" . " Field Value=" . "'" . $var2  . "'" . "<br /> \n";
    }
    ?>
    
    PHP:
    Added single quotes around $usr in query. Replaced mysql_fetch_array with mysql_fetch_assoc. You can also try mysql_fetch_array($return,MYSQL_ASSOC). Added $ in front of data[$var1]
     
    abdussamad, May 6, 2007 IP
  5. legend2

    legend2 Well-Known Member

    Messages:
    1,537
    Likes Received:
    74
    Best Answers:
    0
    Trophy Points:
    115
    #5
    before executing a mysql_query(), you need to select the database name, mysql_select_db()
     
    legend2, May 7, 2007 IP