0

好的,所以我今天工作太久了,我被困在一些简单的事情上(我想)

function commonData($uid)
{
    if ($uid)
    {
            $sql = "
                    SELECT a.user_id, a.email, a.username, a.displayname, a.level_id, a.photo_id
                    FROM engine4_users AS a
                    WHERE a.user_id = ".$uid;
    }

    $UserInfo = @mysql_fetch_assoc(mysql_query($sql));

    if ($UserInfo[user_id])
    {

            if ($UserInfo[photo_id] && $UserInfo[photo_id]!="NULL")
            {
                    $PPhoto = @mysql_fetch_assoc(mysql_query("SELECT a.* FROM engine4_storage_files AS a WHERE a.file_id = ".$UserInfo[photo_id]));
                    $photo = SITE.$PPhoto[storage_path];
            }
            else $photo = NO_PHOTO; 

    $queryMoreProfile = mysql_query("SELECT * FROM engine4_user_fields_values AS a WHERE a.item_id = ".$UserInfo[user_id]);

    while ($moreProfile = @mysql_fetch_assoc($queryMoreProfile))
    {

            //$location = '';
            if ($moreProfile['field_id']==24)
            {
                    $locationNumber = $moreProfile['value'];
                    $locationsql = @mysql_fetch_assoc(mysql_query("SELECT a.* FROM engine4_user_fields_options AS a WHERE a.option_id = ".$locationNumber));

                    if (isset($locationsql['label']) && !empty($locationsql['label']))
                    {
                            $location = $locationsql['label'];
                    }
            }

            //if(empty($location))
            //{
            //      header("Location: http://www.fetishmen.net/members/edit/profile");
            //      exit;
            //}
}

我想做的是说,如果$location没有价值(完全从数据库中丢失)重定向到一个页面。我在这里做错了什么?

4

2 回答 2

2

数组的索引,$moreProfile需要$locationsql是变量或字符串,

if ($moreProfile['field_id']==24) //or $field_id
{
    $locationNumber = $moreProfile['value']; //or $value
    $locationsql = @mysql_fetch_assoc(mysql_query("SELECT a.* FROM engine4_user_fields_options AS a WHERE a.option_id = ".$locationNumber));
    $location = $locationsql['label']; //or $label 
}

if(empty($location))
{
    header("Location: http://website.com");
    exit;
}

编辑:根据OP的评论,

  if ($moreProfile['field_id'] == 24 ) 
{
    $locationNumber = $moreProfile['value']; //or $value
    $locationsql = @mysql_fetch_assoc(mysql_query("SELECT a.* FROM engine4_user_fields_options AS a WHERE a.option_id = ".$locationNumber));
    $location = $locationsql['label']; //or $label 
} else if(empty($moreProfile['field_id'])) {
     header("Location: http://website.com");
     exit;
}
于 2012-11-14T22:34:19.300 回答
0

您应该停止使用 @ 并适当地检查 mysql_result 和 mysql_fetch_assoc 是否正在返回某些内容。试试这个,看看它是否为你重定向:

$location = '';

if ($moreProfile['field_id']==24)
{
    $locationNumber = $moreProfile['value'];
    $locationsql = @mysql_fetch_assoc(mysql_query("SELECT a.* FROM engine4_user_fields_options AS a WHERE a.option_id = ".$locationNumber));

    if (isset($locationsql['label']) && !empty($locationsql['label'])) {
            $location = $locationsql['label'];
    }
}

if(empty($location))
{
    header("Location: http://website.com");
    exit;
}
于 2012-11-14T23:16:55.520 回答