更新:由于第一个问题已修复(谢谢 - 我将第一个问题保留在底部供您参考),正确的连接现在正在拉好。问题在于它只是拉扯那些有联系的照片。不管他们有没有联系,我怎么会把所有的照片都拉出来?从一个表中选择结果并选择每行从另一个表中选择具有相同ID的所有行
添加左连接而不是连接似乎拉在所有的照片,除了它添加“连接”的照片,没有任何...有点奇怪。
这很难解释,但我会尽我所能。首先,让我为这个漫长的标题道歉,我只是试图尽可能详细地描述它。
这是关于在画廊中显示照片(user_album2表)。每张照片都会显示“连接”(来自user_connected表格)。在user_connected表的一个例子是:
fk_pic_id | fk_user_id | fk_user_id_conn
每个列是INT的,拉的照片编号,用户谁所做的连接编号,以及连接的用户编号。
您在下面的代码中看到的所有“get_”函数都只是拉取用户信息的函数(所以如果它是“get_profession”,它将得到职业ID#)。
$query = mysql_query("SELECT a.pic_id, a.fk_user_id as uid, a.picture_number, a.picture_name, a.id, a.featuredphoto, c.fk_pic_id, GROUP_CONCAT(CONVERT(c.fk_user_id_conn, CHAR(8))) as cuids
FROM user_album2 a LEFT JOIN user_connected c ON a.pic_id = c.fk_pic_id GROUP BY a.pic_id ORDER BY RAND() LIMIT 40") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
$pic_id = $row['pic_id'];
$userid = $row['uid'];
$photonum = $row['picture_number'];
$photo = $row['picture_name'];
$photoid = $row['id'];
$featured = $row['featuredphoto'];
$photogid = $row['fk_photog_id'];
$modelid = $row['fk_model_id'];
$cuids = explode(',',$row['cuids']);
if (get_profession($userid) == 1) {
$modeltag = get_name($userid);
$modelpic = get_photo($userid);
$modelLink = get_profile_link($userid);
foreach ($cuids as $c) {
$cprof = get_profession($c);
if ($cprof == 2) {
$photogtag = get_name($c);
$photogpic = get_photo($c);
$photogLink = get_profile_link($c);
}
}
} elseif (get_profession($userid) == 2) {
$photogtag = get_name($userid);
$photogpic = get_photo($userid);
$photogLink = get_profile_link($userid);
foreach ($cuids as $c) {
$cprof = get_profession($c);
if ($cprof == 1) {
$modeltag = get_name($c);
$modelpic = get_photo($c);
$modelLink = get_profile_link($c);
}
}
}
$classMargin = $modeltag && $photogtag ? ' add-bot-margin':'';
$myreturn .= '<li>'
.'<div class="inner">'
.'<img border="0" alt="" src="'. $baseurl . $photo .'&w=188&h=150&zc=1" />'
.'<div class="details">'
.'<a href="'. $baseurl .'photos/'. $userid .'/'. $photoid .'/'. $photonum .'" class="img-link">view image <strong>here</strong></a>'
.'<div class="info-contain-details">';
if ($modeltag) {
$myreturn .= '<div class="details-info model-info'. $classMargin .'">'
.'<a href="'. $baseurl . $modelLink .'" class="link-image"><img border="0" alt="" src="'. $baseurl .'img.php?src=/memberpictures/'. $modelpic .'&w=30&h=30&zc=1" /></a>'
.'<div class="photo-info">'
.'<a href="'. $baseurl . $modelLink .'" class="link-view-more">view more from</a>'
.'<a href="'. $baseurl . $modelLink .'" class="link-username">'. $modeltag .'</a>'
.'</div>'
.'</div>';
}
if ($photogtag) {
$myreturn .= '<div class="details-info photog-info">'
.'<a href="'. $baseurl . $photogLink .'" class="link-image"><img border="0" alt="" src="'. $baseurl .'img.php?src=/memberpictures/'. $photogpic .'&w=30&h=30&zc=1" /></a>'
.'<div class="photo-info">'
.'<a href="'. $baseurl . $photogLink .'" class="link-view-more">view more from</a>'
.'<a href="'. $baseurl . $photogLink .'" class="link-username">'. $photogtag .'</a>'
.'</div>'
.'</div>';
}
$myreturn .= '</div>'
.'<span class="details-bg"></span>'
.'</div>'
.'</div>'
.'</li>';
}
FIXED:出于某种原因,我不能为我的生命得到了行业的部分正确显示。它应该是:如果照片专业的所有者是模特,那么它应该检查该照片=摄影师(模型= 1,摄影师= 2)的连接。我在'user_connected'表中有几行到同一张照片,但是当它应该是一个模型和一个摄影师时,它一直显示相同的2个用户(都是“模型”),就是这样。] - 缺少一个“= “登录$ cfprof if语句,DOH!
如果您需要任何其他信息,请让我知道,并一如既往的帮助,非常感谢!
'($ cprof = 2)'那是什么? – SparKot
$ cfprof使用get_profession函数来获取用户职业ID#。 “$ cprof = get_profession($ c)” – Nate
我在上面的代码中对第19行或第20行进行了正确的解释,为什么'if($ cprof = 2){'? – SparKot