道歉的長度,但我想澄清。 我正在嘗試建立一個網站,讓人們可以更新他們的狀態(如Facebook)。只是學習PHP。我添加了一項功能,可以更新其狀態(僅限文本),或者可以更新其狀態(文本並上傳該狀態的照片)。我已經能夠做到這一點,但更新後,難度是表示形式的一個以前的更新:使用頭像圖像顯示降序狀態更新並更新圖像
化身PIC - 更新文本 - 更新圖像(如圖像)
化身PIC - 更新文本 - 默認圖像(如果沒有上傳更新圖片)
默認的頭像PIC - 更新文本 - 默認圖像(如果沒有上傳更新圖片)
使用最新的更新,然後再剩下的降序排列。
如果用戶的所有更新都有更新圖片(即wid_updates.attached_picture_is不爲空,那麼我沒有問題。如果用戶沒有提供圖片更新,那麼當返回先前的更新時,所有的更新都會丟失。
用戶表:
user_id, first_name, last_name, tel_no, address, username etc.
Wid_pdates表:
update_id, update_text, attached_picture_id, user_id, timestamp
圖片表:
picture_id, picture_url, picture_thumb_url, user_id, avatar(bit)
頭像位默認爲0,如果是用戶頭像(頭像)圖片,則設爲1。
我的PHP代碼:
<?php
$user_id = $_SESSION['UserSession'];
//query user avatar
mysql_select_db($database_connections, $connections);
$query_avatar_thumb = "SELECT picture_thumb_url FROM picture WHERE user_id='$user_id' AND avatar='1'";
$avatar_thumb_result = mysql_query($query_avatar_thumb) or die(mysql_error());
$avatar_thumb = mysql_fetch_assoc($avatar_thumb_result);
//query username
$query_user_info = "SELECT username FROM users WHERE user_id='$user_id'";
$user_info = mysql_query($query_user_info, $connections) or die(mysql_error());
$row_user_info = mysql_fetch_assoc($user_info);
//query update image
$query_wid_updates = "SELECT update_text, picture_thumb_url FROM wid_updates JOIN picture ON wid_updates.user_id = '$user_id'
AND ((wid_updates.attached_picture_id = picture.picture_id) OR (wid_updates.attached_picture_id IS NULL)) ORDER BY wid_updates.update_id DESC";
$wid_updates = mysql_query($query_wid_updates, $connections) or die(mysql_error());
$row_wid_updates = mysql_fetch_assoc($wid_updates);
?>
如果所有的更新都有一幅畫,那麼一切都很好。如果一個更新沒有顯示更新的圖片顯示的次數與否相同。照片表中的照片,包括每張照片。如果圖片中有4張圖片,則無圖片的文字更新將連同每張圖片返回4次。
出了什麼問題?任何幫助讚賞。
謝謝StefanHållén給你回覆。原因是我在連接上匹配user_id是因爲圖片表保存了其他用戶的圖片。這是我的profile.php頁面,我希望用戶只能看到他們過去的更新。在主頁上,他們會看到他們和其他用戶 – 2011-01-13 15:25:44