Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод одинаковых значений одной таблицы
 
 автор: Job   (03.09.2011 в 18:33)   письмо автору
 
 

Привет! Спасайте! ))

Нужно вывести одинаковые записи одной таблицы.

Поля: id, name, familia, otchestvo

Нужно найти одинаковые записи ФИО (три поля совпадения в этой же таблице) и вывести их ID.

мозг гудит.....

  Ответить  
 
 автор: Valick   (03.09.2011 в 20:46)   письмо автору
 
   для: Job   (03.09.2011 в 18:33)
 

<?php 
include('conect.php');
$query="
SELECT t3.* 
    FROM (SELECT t2.* 
            FROM `fio` t1
            JOIN `fio` t2 
            ON t1.name=t2.name 
                    AND t1.familiya=t2.familiya 
                    AND t1.otcestvo=t2.otcestvo) t3
   GROUP BY(t3.id)
   HAVING COUNT(t3.id)>1
   ORDER BY t3.familiya, t3.id"
;
$res=mysql_query($query);
echo 
"<form href=# method=POST>";
while(
$t=mysql_fetch_assoc($res)){
echo 
"<input type=checkbox name=del[] value=$t[id]>"." ";
echo 
$t[id]." ".$t[name]." ".$t[familiya]." ".$t[otcestvo]."<br />";
}
echo 
"Отмеченные поля :<input type=submit name=delete value=Удалить>";
echo 
"</form>";
?> 

пока на ум пришло только это, может есть и другие варианты
__
ну вот, утро вечера мудренее
<?php 
include('conect.php');
$query="
SELECT GROUP_CONCAT(DISTINCT id ORDER BY id SEPARATOR ',') t_id 
    FROM fio 
    GROUP BY name, familiya, otcestvo
    HAVING COUNT(id)>1"
;
$res=mysql_query($query);
echo 
"<form href=# method=POST>";
while(
$t=mysql_fetch_assoc($res)){
echo 
"<b>id=".$t[t_id]."</b><br />";
$f="SELECT * FROM fio WHERE id IN($t[t_id])";
$r=mysql_query($f);
    while(
$i=mysql_fetch_assoc($r)){
    echo 
"<input type=checkbox name=del[] value=$i[id]>"." ";
    echo 
$i[id]." ".$i[name]." ".$i[familiya]." ".$i[otcestvo]."<br />";
    }
}
echo 
"Отмеченные поля :<input type=submit name=delete value=Удалить>";
echo 
"</form>";
?> 

  Ответить  
 
 автор: job   (04.09.2011 в 14:18)   письмо автору
 
   для: Valick   (03.09.2011 в 20:46)
 

Спасибо! Вы меня спасли! гениально! ))

  Ответить  
 
 автор: Valick   (04.09.2011 в 15:04)   письмо автору
 
   для: job   (04.09.2011 в 14:18)
 

да незачто, щас еще лучше придумаю)
__
хм...
SELECT * FROM fio WHERE id IN(
SELECT GROUP_CONCAT(DISTINCT id ORDER BY id SEPARATOR ',')
    FROM fio 
    GROUP BY name, familiya, otcestvo
    HAVING COUNT(id)>1)

работает не так как хотелось бы... печалька :(

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования