[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите плиз с сортировкой из БД!!!!
bogdansid
Всем привет!
У меня есть две таблицы golos и photo.....
Мне нужно чтобы записи из таблицы photo сортировались по количеству голосов....
Вот код страницы вывода результатов :

<table width="592" border="0" align="center">
<
tr>
<
td><div align="center">
<
h3>Рейтинг</h3>
<
table width="450" border="0" cellspacing="1">
<?php



require_once ("config.php");
mysql_query("SET NAMES 'utf8'");
// Выбираем из базы данных фотографии
$query = "SELECT * FROM photo ORDER BY id DESC";
$prt = mysql_query($query);
if(!$prt)
{
echo "error : ".mysql_error()."<br>";
echo $query;
puterror("Ошибка при обращении к блоку Фотогалерея");
}

echo'<tr><td bgcolor=#83ABEF>Имя</td><td bgcolor=#83ABEF>голосов</td></tr>';
while($par = mysql_fetch_array($prt))
{
$result = mysql_query("SELECT id_golos FROM golos WHERE id_golos=".$par['id']."");
$num_rows = mysql_num_rows($result);
echo "<tr><td bgcolor=#E0EAFB><a href=reiting.php?id=".$par['id'].">".$par['name']."</a></td><td bgcolor=#E0EAFB><b>".$num_rows."</b></td></tr>";


}

?>
</table>



Вот таблица photo:


CREATE TABLE IF NOT EXISTS `photo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` tinytext NOT NULL,
`img` tinytext NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=16 ;

--
-- Dumping data for table `photo`
--

INSERT INTO `photo` (`id`, `name`, `img`) VALUES
(14, 'Книга1', 'files/20110106170046.jpg'),
(12, 'Книга2', 'files/20110106113315.png'),
(13, 'книга3', 'files/20110106113325.jpg'),
(11, 'книга4', 'files/20110106113302.jpg'),
(10, 'книга5', 'files/20110106113246.jpg'),
(6, 'книга6', 'files/20110106113047.jpg'),
(7, 'книга7', 'files/20110106113148.png'),
(8, 'книга8', 'files/20110106113218.jpg'),
(9, 'книга9', 'files/20110106113231.jpg'),
(15, 'книга10', 'files/20110107043024.gif');




вот таблица golos:


CREATE TABLE IF NOT EXISTS `golos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_golos` int(11) NOT NULL,
`ip` text NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=78 ;

--
-- Dumping data for table `golos`
--

INSERT INTO `golos` (`id`, `id_golos`, `ip`) VALUES
(56, 11, '192.168.1.2'),
(55, 14, '192.168.1.2'),
(54, 14, '192.168.1.2'),
(53, 8, '192.168.1.2'),
(52, 8, '192.168.1.2'),
(51, 7, '192.168.1.2'),
(50, 6, '192.168.1.2'),
(49, 11, '192.168.1.2'),
(48, 11, '192.168.1.2'),
(47, 12, '192.168.1.2'),
(46, 15, '192.168.1.2'),
(57, 10, '192.168.1.2'),
(58, 6, '192.168.1.2'),
(59, 7, '192.168.1.2'),
(60, 7, '192.168.1.2'),
(61, 9, '192.168.1.2'),
(62, 14, '192.168.1.2'),
(63, 13, '192.168.1.2'),
(64, 11, '192.168.1.2'),
(65, 10, '192.168.1.2'),
(66, 10, '192.168.1.2'),
(67, 10, '192.168.1.2'),
(68, 10, '192.168.1.2'),
(69, 10, '192.168.1.2'),
(70, 15, '192.168.1.2'),
(71, 15, '192.168.1.2'),
(72, 13, '192.168.1.2'),
(73, 10, '192.168.1.2'),
(74, 6, '192.168.1.2'),
(75, 7, '192.168.1.2'),
(76, 7, '192.168.1.2'),
(77, 9, '192.168.1.2');






Поможете?






Спустя 6 минут, 29 секунд (10.01.2011 - 18:14) Игорь_Vasinsky написал(а):
чё то у тя привязки то нету не какой между таблицами.

ты хотяб в таблицу golos добавь поле name из таблицы photo - чтоб видно за какую книгу голос отдан.

а вообще мог бы и в одной табле всё организовать.

Спустя 27 минут, 13 секунд (10.01.2011 - 18:41) bogdansid написал(а):
Кто может объяснить на примере?

Спустя 6 минут, 40 секунд (10.01.2011 - 18:48) Игорь_Vasinsky написал(а):
создай одну таблу.:

id | name | image | poll (golos)

вторую

id | ip

если кто то голосует за какой нить id -добавляй его ip и id книги в таблу 2.


вот и всё.

если он опять хочет за неё отдать голос - проверт по id этой книги в табе 2 - ip голосуещёго - если совпадёт - не дай проголосовать

Спустя 9 минут (10.01.2011 - 18:57) Invis1ble написал(а):
Блин, достали топики с такими названиями! Даже читать не стал mad.gif

bogdansid
прочти правила форума - название темы должно нести информацию

Спустя 24 минуты, 31 секунда (10.01.2011 - 19:21) Игорь_Vasinsky написал(а):
можно и в одной табле - писать ip через разделитель, потом в цикле проверять.

но эт те не нужно раз ты на структуре БД спекаешься. используй мой вариант с 2мя таблицами.

Спустя 4 минуты, 16 секунд (10.01.2011 - 19:26) bogdansid написал(а):
Цитата (Игорь_Vasinsky @ 10.01.2011 - 16:21)
можно и в одной табле - писать ip через разделитель, потом в цикле проверять.

но эт те не нужно раз ты на структуре БД спекаешься. используй мой вариант с 2мя таблицами.

Большое спасибо за твой вариант, всё работает как хотелось!!!

Спустя 1 минута, 53 секунды (10.01.2011 - 19:28) Игорь_Vasinsky написал(а):
не за что.

как приятно быть полезным и получать благодарность в ответ.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.