2012-03-30 91 views
0

好的,我需要说清楚,当谈到PHP/MySQL时,我不是一个天才我知道的是当我做了比它更难的事情时。我想知道是否有人可以看看下面的一组代码,并告诉我如何简化它。所以我知道如何解决它,并在下次做。SocialEngine数据库查询清理

$link = mysql_connect('localhost', 'username', 'password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
if (!mysql_select_db('fetish')) { 
    die('Could not select database: ' . mysql_error()); 
} 
$userid = $this->translate($this->viewer()->getIdentity()); 
$result = mysql_query("SELECT photo_id FROM engine4_users WHERE user_id = $userid"); 
if (!$result) { 
die('Could not query:' . mysql_error()); 
} 
$photoid = mysql_result($result, 0); 
$result1 = mysql_query("SELECT storage_path FROM engine4_storage_files WHERE parent_file_id = $photoid"); 
if (!$result1) { 
    die('Could not query:' . mysql_error()); 
} 
$avatar = mysql_result($result1, 0); 
if (!$avatar) { 
    $avatar = "application/themes/musicbox-red/images/nophoto_user_thumb_icon.png";<br> 
} 
$result2 = mysql_query("SELECT country FROM engine4_user_fields_search WHERE item_id = $userid"); 
if (!$result2) { 
    die('Could not query:' . mysql_error()); 
} 
$country = mysql_result($result2, 0); 

所以基本上我需要在一天结束是下列变量$用户ID $化身$国家

由于任何人谁可以提前帮助。

Ryan

回答

0

我认为这是你需要的。你必须使用连接。试试:

$userid = $this->translate($this->viewer()->getIdentity()); 
$result = mysql_query(" 
SELECT u.user_id, f.country as `country`, s.storage_path as `spath` FROM engine4_users as u 
LEFT JOIN engine4_storage_files as s ON u.photo_id = s.parent_file_id 
JOIN engine4_user_fields_search as f ON u.user_id = f.item_id 
WHERE u.user_id = $userid 
"); 
while($row = mysql_fetch_array($result)) { 
    // Do your code logic here 
    $country = $row['country']; 
    if($row['spath']) { 
    $avatar = "application/themes/musicbox-red/images/nophoto_user_thumb_icon.png"; 
    } 
    else 
    $avatar = NULL; 
}