Как вывести строки с неизвестнымй...

sasha10100001
Дата: 18.12.2012 20:54:56
Здравствуйте!
Помогите разобраться с такими запросами:
1) Необходимо вытащить из таблицы все уникальные номера телефонов при условии что в таблице есть повторяющийся номера
2) Как вытащить повторяющийся номера и разбить их на группы (то есть чтобы при выдачи дало: 3 номера таких-то; 8 номеров таких-то; 2 номера таких-то и т.д.)

За ранее спасибо.
miksoft
Дата: 18.12.2012 20:56:38
COUNT(*) и GROUP BY
sasha10100001
Дата: 18.12.2012 21:56:29
miksoft
COUNT(*) и GROUP BY


А можно чуть чуть подробнее.
Как мне разбить результат запроса на количество групп которое получится и записать их в переменные.
Могу ли я вытащить только количество повторов а не их значение?
Или вытащить по одному значению из каждой группы и рядом указать сколько раз она повторяется.
miksoft
Дата: 18.12.2012 21:58:56
Вы даже букварь открыть не хотите самостоятельно?

SELECT tel_number, COUNT(*) FROM tel_table GROUP BY tel_number
sasha10100001
Дата: 25.12.2012 20:44:35
miksoft,
Открыл букварь, ЧЕСТНОЕ СЛОВО! вот этот: http://phpclub.ru/mysql/doc/group-by-functions.html
и ни чего не понял, я даже подозреваю, что моя задумка вообще невыполнима.
Моя база:
====================================================
= id = telefon = user = city =
====================================================
= 1 = 999-99-99 = colia = moskou =
====================================================
= 2 = 111-11-11 = serii = piter =
====================================================
= 3 = 999-99-99 = colia = moskou =
====================================================
= 4 = 111-11-11 = serii = piter =
====================================================
= 5 = 111-11-11 = serii = piter =
====================================================
= 6 = 999-99-99 = colia = moskou =
====================================================
= 7 = 111-11-11 = serii = piter =
====================================================
= 8 = 999-99-99 = colia = moskou =
====================================================
= 9 = 111-11-11 = serii = piter =
====================================================
= 10 = 111-11-11 = serii = piter =
====================================================

Ваш запрос:
$xx = mysql_query("SELECT telefon, COUNT(*) FROM tab_tel GROUP BY telefon", $conn);
$xx1 = mysql_fetch_array($xx);
foreach($xx1 as $xx2)
echo "$xx2<br/>";
print_r($xx1);

выводит на экран:
999-99-99
999-99-99
4
4
Array ( [0] => 999-99-99 [telefon] => 999-99-99 [1] => 4 [COUNT(*)] => 4 )

А что это, понятия не имею.

А вот что мне нужно:
$xxx1="4 номера: 999-99-99";
$xxx2="6 номера: 111-11-11";
$xxx3="4 номера 999-99-99 имеет пользователь colia";
$xxx4="6 номера 111-11-11 имеет пользователь serii";

При условии что я не знаю ни одного значения в этой таблицы.
Это вообще, возможно?
miksoft
Дата: 25.12.2012 21:16:36
Мой запрос и выдает именно то, что Вы просили.
Первая запись результата - телефон 999-99-99 повторяется 4 раза.
Читайте в цикле остальные записи и получите полный результат.
За справкой обращайтесь в описание mysql-функций в доке по PHP. В т.ч. там есть примеры.

И, кстати, про "имеет пользователь colia" в исходной задаче ничего сказано не было.
sasha10100001
Дата: 25.12.2012 23:38:06
miksoft,
И что?
В цикле:
$xx = mysql_query("SELECT telefon, COUNT(*) FROM tab_tel GROUP BY telefon", $conn);
$rows = mysql_num_rows($xx);
$fields = mysql_num_fields($xx);

echo "<pre>";
  for ($c=0; $c<$rows; $c++) {
     for ($cc=0; $cc<$fields; $cc++) {
     echo mysql_result($xx, $c, $cc);
     echo "\n";
     }
  }
echo "</pre>";

мне выдает:
999-99-99
4
111-11-11
6
и зачем мне такая запись?
Мне нужно вывести эти значения в отдельные переменные, чтобы потом я мог с ними работать на свое усмотрение, то есть, coli, к примеру, показать что у Вас 4 одинаковых номера телефона и при нажатии кнопки "подробно" показываю какой именно номер (999-99-99)
Вы поймите меня правильно, я не имею возможности выучить всю документацию php+mysql именно поэтому я обращаюсь к форуму.
sasha10100001
Дата: 25.12.2012 23:41:24
miksoft,
А как, на счет "имеет пользователь colia"?
Это выполнимо?
miksoft
Дата: 26.12.2012 00:20:21
sasha10100001
miksoft,
А как, на счет "имеет пользователь colia"?
Это выполнимо?
Может, и выполнимо. Но нужно точнее определиться с постановкой задачи.
sasha10100001
Дата: 27.12.2012 13:02:23
miksoft,
Когда "colia" заходит в свой личный кабинет, то происходит запрос (не знаю какой) к базе данных "tab_tel" выбирает от туда все поля которые принадлежат "coliа" разбивает их на группы и заносит эти значения в переменные. К примеру, если у "coliа" в базе 3 телефона 222-22-22 и 5 телефона 333-33-33, в таком случае необходимо получить 4 переменных:
1) $tel1 = 222-22-22
2) $tel1_2 = 3
3) $tel2 = 333-33-33
4) $tel2_2 = 5