|
|
|
| У меня такая проблема.
Существует таблица ks_honour_o, в ней есть 5 полей: id(auto_increment),img,name,info,year. В поле year хранится год из 4-х цифр (пример: 2004). У меня несколько записей. У всех есть год, он может быть каким угодно, может совпадать с другим годом. Так вот, я не могу составить запрос так, чтобы высвечиволось кол-во оригинальных годов, т.е. если у меня 4 записи, в первой year=2004, во второй year=2003, в третьей year=2004 и в четвёртой year=2002.
В первой и третьей записях год совпадает, следовательно общее кол-во оригинальных лет = 3 (2004 совпадает + 2002 + 2003). Долго мучился, может, Вы мне поможете. | |
|
|
|
|
автор: cheops(из ННГУ) (22.11.2004 в 13:55) |
|
|
для: BAHO
(22.11.2004 в 13:44)
| | Хм... для этого следует воспользовать оператором GROUP BY
SELECT year FROM ks_honour_o GROUP BY year
|
| |
|
|
|
|
|
|
|
для: cheops(из ННГУ)
(22.11.2004 в 13:55)
| | Ничего не получается. когда я вводил ентот запрос, то мне выдали почему-то самый маленький год.
я сделал такой запрос:
$query=mysql_query("SELECT count(year) FROM ks_honour_o GROUP BY year ");
$count=mysql_fetch_array($query);
echo "$count[0]";
|
Но почему то отображается 1. | |
|
|
|
|
|
|
|
для: BAHO
(22.11.2004 в 15:14)
| | DISTINCT выбирает оригинальные значения столбца | |
|
|
|
|
|
|
|
для: BAHO
(22.11.2004 в 15:14)
| | Попробуйте так:
SELECT count(distinct year) FROM 'ks_honour_o'
|
| |
|
|
|
|
|
|
|
для: BAHO
(22.11.2004 в 15:14)
| | Хм... может лучше плясать от задачи, что требуется вывести? | |
|
|
|
|
автор: ВАНО (аноним) (23.11.2004 в 08:50) |
|
|
для: cheops
(22.11.2004 в 22:41)
| | мне лишь нужно вывести кол-0во оригинальных годов | |
|
|
|
|
|
|
|
для: ВАНО (аноним)
(23.11.2004 в 08:50)
| | Хм... т.е. насколько я понял следует вывести в столбик года и напротив их сколько раз они встречаются?
<?php
$dblocation = "127.0.0.1";
$dbname = "test";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo "<p>К сожалению, не доступен сервер MySQL</p>";
exit();
}
if (!@mysql_select_db($dbname,$dbcnx) )
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
// Формируем SQL-запрос
$query = "SELECT year, COUNT(year) AS total FROM ks_honour_o GROUP BY year";
$yer = mysql_query($query);
if(!yer)
{
echo mysql_error();
exit();
}
while($year = mysql_fetch_array($yer))
{
echo $year['year']." - ".$year['total']."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.11.2004 в 11:35)
| | Нет, енто мне надо было. Команда distinct мне очень помогла, я дописал скрипт, спасибо БОЛЬШОЕ!
Мой новый вопрос в теме "кавычки". | |
|
|
|