мой первый пост здесь и надеюсь, что кто-то может помочь. Я запрашиваю таблицу в базе данных mySQL и, очевидно, получаю результаты. Тем не менее, таблица используется для хранения нескольких записей одним пользователем для контактов пользователя.
Что я хотел бы сделать, так это отображать каждого пользователя отдельно и подсчитывать количество контактов, которые есть у каждого пользователя. Я посмотрел сообщение "Как обнаружить повторяющиеся сообщения в массиве PHP, которые немного помогли, но я все еще застрял.
Пожалуйста, посмотрите мой код для запроса ниже, я оставил дубликат части массива, так как на данный момент это довольно беспорядочно.
<?php
$result = mysql_query("SELECT * FROM vines");
while($row = mysql_fetch_array($result)) {
$results=$row['vinename'];
echo $results;
echo "<br />";
}
?>
Этот результат возвращает ниже, очевидно, что это записи из каталога vinename coloumn.
Marks Vine<br />
Marks Vine<br />
Marks Vine<br />
Tasch Vine<br />
Tasch Vine<br />
Отношения Марк Локстон
Просто измените SQL Query на
SELECT vinename, COUNT(vinename) as counter FROM vines GROUP BY vinename
а затем do
echo $row['vinename']." #".$row['counter']."<br />";
Привет, мой первый пост здесь и надеюсь, что кто-то может помочь. Я запрашиваю таблицу в базе данных mySQL и, очевидно, получаю результаты. Тем не менее, таблица используется для хранения нескольких записей одним пользователем для контактов пользователя.
Вы можете сделать это в самом запросе намного легче, чем в PHP-коде впоследствии.
SELECT name, COUNT(id) AS count FROM vines GROUP BY name
во-первых, спасибо всем за такой потрясающий вклад. Я серьезно не ожидал такого быстрого ответа. Я очень благодарен.
Я использовал рекомендацию от Джиттера. В настоящее время у меня довольно много вариантов вышеупомянутого кода, но мне просто нужен этот недостающий кусок.
Спасибо, всем. Ниже приведен окончательный код для любого другого, у кого такая же проблема в будущем.
<?php
$result = mysql_query("SELECT vinename, COUNT(vinename) as counter FROM vines GROUP BY vinename ORDER BY counter DESC LIMIT 0, 3");
while($vinerow = mysql_fetch_array($result))
echo $vinerow['vinename']." has ".$vinerow['counter']." tomatos."."<br />";
?>
Вы можете попробовать, изменить свой запрос, чтобы использовать count и группу SQL.
Сомо вещь вроде
$result = mysql_query("SELECT count(*) as total,name FROM vines GROUP by name");
Я бы запросил два типа запросов... 1) Выберите каждого УНИКАЛЬНОГО пользователя из лозы. 2) Для каждого пользователя в этом наборе запустите второй запрос COUNT с этим идентификатором пользователя в таблице "vines".
Я надеюсь, что это поможет.
Вы можете создать отдельный массив для хранения записей, которые вы уже вывели там.
<?php
$result = mysql_query("SELECT * FROM vines");
$duplicates = array(); ## store duplcated names here
while($row = mysql_fetch_array($result)) {
$results = $row['vinename'];
if (!array_key_exists($results, $duplicates)) {
echo $results;
echo "<br />";
$duplicates[$results] = 1; ## mark that we've already output this records
}
}
?>
измените свой запрос на:
SELECT distinct * FROM vines