Привет всем. У меня возник такой вопрос. Я создаю сайт с картинками, в котором пользователь может загружать картинки. Возле каждой картинки на сайте стоит имя пользователя, который их загрузил. Как сделать так, чтобы возле пользователя было количество картинок, которые он загрузил на сайт? Делаю вот такой запрос: PHP: Код (Text): <?PHP $query = mysql_query("SELECT COUNT(*) FROM db_name"); $sql = "SELECT * FROM db_name"; $result = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_assoc($result)) { $table .= $row['owner']; } echo $table; ?> Здесь owner это id пользователя на свою картинку. На сайт выводятся все id пользователя, которые есть на данный момент, сколько картинок загрузил, столько штук и выводится id пользователя. Мне нужно вывести их количество, и присвоить их к картинке пользователя.
Самый быстроработающий вариант будет хранить в таблице с пользователями (помимо всех их данных) количество загруженных пользователем картинок. В момент загрузки картинки, соответственно, увеличивать эту цифру в б.д. Пример б.д. Код (Text): CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT, `login` VARCHAR(20) NOT NULL DEFAULT '', `password` VARCHAR(32) NOT NULL DEFAULT '', `email` VARCHAR(128) NOT NULL DEFAULT '', `images` INT NOT NULL DEFAULT 0, PRIMARY KEY(`id`) ) ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci; CREATE TABLE `images` ( `id` INT NOT NULL AUTO_INCREMENT, `user_id` INT NOT NULL DEFAULT 1, `filepath` VARCHAR(128) NOT NULL DEFAULT '', PRIMARY KEY(`id`), KEY(`user_id`) ) ENGINE = MyISAM DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_general_ci; Пример запроса на выборку: Код (Text): SELECT `images`.*, `users`.`login`, `users`.`images` FROM `images` INNER JOIN `users` ON(`images`.`user_id` = `users`.`id`);
Дело в том, что я это делаю для компонента галереи Джумла, там уже все таблицы созданы, надо только вывести количество картинок пользователя. Вот функция: Код (Text): function getImageNumber() { $this->_db->setQuery("SELECT COUNT(id) FROM "._JOOM_TABLE_IMAGES." WHERE owner = ".$this->_user->get('id') ); return $this->_db->loadResult(); } Здесь видно чему равен owner. Это выводит ID пользователя картинки на сайт Код (Text): $this->image->owner