0

OK、はっきりさせる必要があります。PHP/ MySQLに関しては、私は天才ではありません。私が知っているのは、必要以上に困難なことをしたときです。誰かが次のコードセットを見て、どうすればそれを単純化できるか教えてくれないかと思っていました。だから私はそれを修正し、次回それを正しく行う方法を知っています。

$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);

つまり、基本的に1日の終わりに必要なのは、次の変数$ userid $ avatar$countryです。

事前にお手伝いできる方、ありがとうございました。

ライアン

4

1 に答える 1

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;
}
于 2012-03-30T19:15:43.747 に答える