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:
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...
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
<?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]