hej
kolejne pytanie co do tematu:)
a konkretnie albumu
aktualnie tak wyglada poziom rozwoju mojej galerii:
CREATE TABLE IF NOT EXISTS `user_album` (
`id_user` int(10) UNSIGNED NOT NULL,
`album_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`album_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
`album_desc` text COLLATE utf8_polish_ci NOT NULL,
`album_thumb` int(10) UNSIGNED NOT NULL,
`album_access` int(2) UNSIGNED NOT NULL,
`add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`album_id`,`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `user_photo` (
`photo_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_user` int(10) UNSIGNED NOT NULL,
`album_id` int(10) UNSIGNED NOT NULL,
`id_cat` int(10) UNSIGNED NOT NULL,
`file_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
`photo_name` varchar(128) COLLATE utf8_polish_ci NOT NULL,
`photo_desc` text COLLATE utf8_polish_ci NOT NULL,
`add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`counter` int(10) UNSIGNED NOT NULL,
PRIMARY KEY (`photo_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1 ;
i teraz tak sie zastanawiam..
założenie mam takie że użytkownik bez wcześniejszego ręcznego tworzenia gallerii moze odrazu wgrywać sobie zdjęcia.
a te zdjęcia wtedy będą wyświetlane jako że są w głównej gallerii ..
i mam dylemat taki czy tą główna (domyśla) galerie rejestrować w bazie zaraz przy rejestracji użytkownika .
czy wogóle jej nie wykazywać. - a poźniej w wynikach zdjęcia które nie sa przypisane do żadnej z gallerii bedą wrzócane zapytaniem do tej głównej.
-- tylko nie wiem czy w ten sposób nie narobie sobie zbyt dużo roboty..
słucham waszych opinii.
temat juz nie aktualny..
w sumie sam się rozwiązał
album główny ma zawsze wartość '0'
wiec obyło sie bez większych kombinacji ..
pobieranie danych z bazy: klasa danych;
public function get_photo_album($user,$album_id){
$sql="select * from user_photo where id_user ='".$user."' and album_id='".$album_id."'order by add_date_photo desc";
$connect=$this->connect_bd();
$result=$connect->query($sql);
if (!$result){echo "blad w get photo album"; return false;} if ($result->num_rows>0)
{
$result=$this->result_bd_to_table($result);
return $result;
}
}
ta funkcja działa dla każdej możliwości.
a wywoływana przez:
formatowanie wyników z bazy - klasa formatowania:
public function display_user_album($table_albums){
if (!is_array($table_albums)) {
echo "<li> Brak dostępnych kategorii </li>";
return;
}
foreach ($table_albums as $row) {
?><div class="product-photo">
<p>
<?php
if($row['album_thumb']=='null'){echo "cos pokrecilem";}else{ ?>
<a href='../users/gallery.php?album=
<?php echo $row['album_id'];?>'><img src='../themes/new/albums_def.png' width='100' height='100' ><br>
<?php echo $row['album_name'];?></a>
<?php
}
?>
</p>
</div><?php
}
//wyswietlanie linku od galerii glownej
?><div class="product-photo">
<p>
<a href='../users/gallery.php?album=0'><img src='../themes/new/albums_def.png' width='100' height='100' ><br>Album główny</a>
</p>
</div><?php
}
zawsze wyświetla prawidłowe wartości.
plik docelowy : gallery.php ktory wyświetla zawartosc w zaleznosci od wyboru galerii
class change extends user_view{
public function display_contents (){
$get_user=new data_user();
$user_real_id=$get_user->get_user_real_id($_SESSION['login']);
$album_id=$_GET['album'];
$get=new data_user();
$table_photo=$get->get_photo_album($user_real_id['id'],$album_id);
?><div id="contentuser"><div class="title">Album:</div><div class="post"><div class="entry">
<?php
$show=new user_view();
$show->display_photo_album($table_photo);
?>
</div>
</div></div>
<?php
//zamyka display contents
}
//zamyka klase
}
a tak out of topic:
czy takie pisanie kodu jak ja.. jest ok.. czy to raczej sieczka? wg. was?