|
|
|
| Люди! Как проверить наличие одинаковой записи в таблице Mysql и вывести количество этих одинаковых записей? | |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 13:47)
| | Вообще-то это ворпос не по РНР, а по MySQL :) :
<?php
$sql = mysql_query("SELECT * FROM table1 WHERE pole='".$pole."'");
if(mysql_num_rows($sql)>0)
{
for($i=0;$i<mysql_num_rows($sql);$i++)
{
$arr = mysql_fetch_array($sql);
echo $arr['name']."<BR>";
}
}
?>
|
Что-то вроде этого... | |
|
|
|
|
|
|
|
для: DEM
(23.11.2006 в 14:19)
| |
<?php
echo "Количество одиннаковых записей: ".mysql_num_rows(mysql_query("SELECT * FROM table1 WHERE pole='".$pole."'"));
?>
|
:) | |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 13:47)
| | если поле заранее известно:
<?
mysql_query("SELECT COUNT(*) FROM table1 WHERE pole='$pole'");
echo mysql_result(0, $result);
|
| |
|
|
|
|
|
|
|
для: Loki
(23.11.2006 в 14:26)
| | 2 DEM:
знаю но когда написал было уже поздно
2 Loki и всем:
>если поле заранее известно:
>
<?
>mysql_query("SELECT COUNT(*) FROM table1 WHERE pole='$pole'");
>echo mysql_result(0, $result);
>
|
спасибо но
по задачи поле неизвестно | |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 17:02)
| | а если поле неизвестно, с ЧЕМ записи будут одинаковы? если вам нужен поиск дубликатов,
то тут была такая тема.
алгоритм удаления дубликатов:
1. создается новая таблица с такими же как в исследуемой полями и типами
2. делается запрос INSERT INTO tbl_2 SELECT * FROM tbl1 GROUP by name (имя столбца, где
надо искать дубликаты)
3. если все сделано правильно и в новой таблице все читается и нет дубликатов, можно
удалить старую и переименовать новую таблицу в старую ALTER TABLE tbl2 RENAME tbl1 | |
|
|
|
|
|
|
|
для: elenaki
(23.11.2006 в 17:09)
| | спасибо
но мне надо еще подсчитать кол-во дубликатов | |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 17:02)
| | тогда это делается так:
SELECT pole, COUNT(pole) FROM table1 GROUP BY pole
|
| |
|
|
|
|
|
|
|
для: Loki
(23.11.2006 в 17:24)
| | ну еще это дело можно отсортировать по частоте:)
SELECT pole, COUNT(pole) as num FROM table1 GROUP BY pole ORDER BY num DESC
|
| |
|
|
|
|
|
|
|
для: Loki
(23.11.2006 в 17:34)
| |
SELECT pole, COUNT(pole) as num FROM table1
GROUP BY pole
HAVING num > 1
ORDER BY num DESC
|
| |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 13:47)
| | Я наверное уже достал но возник вопрос как вывести результат в веб-браузере для каждой повторившейся записи?
У меня не получается:
// "Edit info" script
$query = mysql_query("SELECT * FROM user GROUP BY name Order by Count(name) Desc");
if (mysql_num_rows($query) == 0)
{
exit("Вот так вот!");
}
echo "<table border=1>";
while($v=mysql_fetch_assoc($query))
{
echo "<tr>
<td bgcolor=F0F8FF width=150>".$v['name']."</td>
<td bgcolor=F0F8FF width=150>".mysql_result(???????????????)."</td>
<td bgcolor=F0F8FF width=150>".$v['email']."</td>
<td bgcolor=F0F8FF width=150>".$v['url']."</td>
<td bgcolor=F0F8FF width=150>".$v['about']."</td>
<td><form action=edit_info.php method=post><input type=hidden name=user value=".$v['name']."><input type=submit value=Edit></form></td>";
echo "</tr>";}
echo "</table>";
|
| |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 18:32)
| |
$query = mysql_query("SELECT * FROM user GROUP BY name Order by Count(name) Desc");
|
Достаточно вольная интерпретация того, что вам написали выше... | |
|
|
|
|
|
|
|
для: Loki
(23.11.2006 в 19:48)
| | >
>$query = mysql_query("SELECT * FROM user GROUP BY name Order by Count(name) Desc");
>
|
>Достаточно вольная интерпретация того, что вам написали выше...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Возможно.
Слушайте! Я уже 2 часа парюсь с этой "вольной интерпретацией". Уточню: меня интересует именно вывод данных результата обработки таблицы. | |
|
|
|
|
|
|
|
для: Alex007
(23.11.2006 в 13:47)
| | Помогите кто-нибудь плиз! | |
|
|
|
|
|
|
|
для: Alex007
(24.11.2006 в 09:28)
| | Попробуйте такой запрос
SELECT name,COUNT(name) FROM user group by name
Для вывода в браузер необходимо будет
добавить в запрос необходимые поля.
Приблизительно это будет выглядеть так:
$query = mysql_query("SELECT name,COUNT(name) as counts,email,url,about FROM user group by
name having counts > 1");
if (mysql_num_rows($query) == 0)
{
exit("Вот так вот!");
}
echo "<table border=1>";
while($v=mysql_fetch_row($query))
{
echo "<tr>
<td bgcolor=F0F8FF width=150>".$v[0]."</td>
<td bgcolor=F0F8FF width=150>".$v[1]."</td>
<td bgcolor=F0F8FF width=150>".$v[2]."</td>
<td bgcolor=F0F8FF width=150>".$v[3]."</td>
<td bgcolor=F0F8FF width=150>".$v[4]."</td>
<td><form action=edit_info.php method=post><input type=hidden name=user value=".$v['0]."><input type=submit value=Edit></form></td>";
echo "</tr>";}
echo "</table>";
| |
|
|
|