我正在尋求在用戶配置文件中實現列可見性的最佳方法。PHP配置文件列可見性+ MySQL
試想以下情形:
Name : stackoverflow | [checkbox] visible = 1
Address: New York | [checkbox] visible = 0
Phone : 312 021 11 | [checkbox] visible = 1
Email : [email protected] | [checkbox] visible = 1
有了這個,我有兩個表:簡介和profile_visibility
輪廓
ID
ID_User (joins with the User table)
Address
Phone
Email
profile_visibility
ID
ID_User (joins with the User table)
Address
Phone
Email
profile_visibility的字段都是(id_user和id除外)tinyint數據。
現在,我想對所有列做一個循環來檢查該列是否可見,而不是創建條件(因爲我有更多的列)。喜歡的東西:
$profile = $this->profile($id); // gets the info (as array) of profile
$visibility = $this->profile_visibility($id); // gets the visibility of fields
for($i = 0; $i <= sizeof($profile) - 1; $i++){
/* I can't match $profile with $visibility because the values are different..
$profile[$i]['name'] == $visibility[$i]['name']
$profile[$i]['name'] > it's equal to: 'stackoverflow'
$visibility[$i]['name'] > it's equal to: '1'
*/
}
編輯:解決 - >但它不是最好的解決方法,請參閱@niyou解決方案。
foreach($visibility as $key => $val) {
if($val == 1){
if(array_key_exists($key, $profile)){
$content .= "<tr>
<td class='text-align-right'>
<b>" . ucfirst($key) . "</b>:
</td>
<td class='width-100'>" . $profile[$key] . "</td>
<td>
</td>
</tr>";
}
}
}
你有$能見度值[$ i] [「名」],這是「1」。這個值不被認爲是真的說'名字是可見的'?如果該值爲'0',是否不被視爲不可見。 –
實際上'$ visibility [$ i]'是完全錯誤的。因爲我只接收一個用戶的數據..所以沒有意義做一個多維數組..我改變了只有'$ visibility ['name' ]'和'$ profile ['name']'。 – user3065191