Дубликаты массива PHP

0

мой первый пост здесь и надеюсь, что кто-то может помочь. Я запрашиваю таблицу в базе данных 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 />

Отношения Марк Локстон

  • 0
    Пожалуйста, исправьте форматирование вашего кода. Под окном редактирования есть окно предварительного просмотра, которое вы можете использовать, чтобы увидеть, выглядит ли оно разумным.
  • 1
    каков ваш ожидаемый результат? Могу ли я увидеть дублирующуюся часть массива, даже если она грязная?
Показать ещё 3 комментария
Теги:

7 ответов

1

Просто измените SQL Query на

SELECT vinename, COUNT(vinename) as counter FROM vines GROUP BY vinename

а затем do

echo $row['vinename']." #".$row['counter']."<br />";
  • 0
    Привет, во-первых, спасибо всем за такой потрясающий вклад. Я серьезно не ожидал такого быстрого ответа. Я серьезно благодарен. Вышеуказанное работало как масло в двигателе.
  • 1
    Тогда также проголосуй и прими лучший ответ
1

Привет, мой первый пост здесь и надеюсь, что кто-то может помочь. Я запрашиваю таблицу в базе данных mySQL и, очевидно, получаю результаты. Тем не менее, таблица используется для хранения нескольких записей одним пользователем для контактов пользователя.

Вы можете сделать это в самом запросе намного легче, чем в PHP-коде впоследствии.

SELECT name, COUNT(id) AS count FROM vines GROUP BY name
0

во-первых, спасибо всем за такой потрясающий вклад. Я серьезно не ожидал такого быстрого ответа. Я очень благодарен.

Я использовал рекомендацию от Джиттера. В настоящее время у меня довольно много вариантов вышеупомянутого кода, но мне просто нужен этот недостающий кусок.

Спасибо, всем. Ниже приведен окончательный код для любого другого, у кого такая же проблема в будущем.

<?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 />";

?>
0

Вы можете попробовать, изменить свой запрос, чтобы использовать count и группу SQL.

Сомо вещь вроде

$result = mysql_query("SELECT count(*) as total,name FROM vines GROUP by name");
0

Я бы запросил два типа запросов... 1) Выберите каждого УНИКАЛЬНОГО пользователя из лозы. 2) Для каждого пользователя в этом наборе запустите второй запрос COUNT с этим идентификатором пользователя в таблице "vines".

Я надеюсь, что это поможет.

  • 0
    Как показывают другие ответы, это можно сделать в одном запросе с помощью предложения GROUP BY.
  • 0
    Здорово, спасибо. Это определенно
Показать ещё 1 комментарий
0

Вы можете создать отдельный массив для хранения записей, которые вы уже вывели там.

<?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
    }
}

?>
-1

измените свой запрос на:

SELECT distinct * FROM vines
  • 0
    Не дает счетчиков, и он также не будет работать, если другие данные в строке не идентичны.
  • 0
    Спасибо, так как это было моей проблемой в течение дня, я прошёл ответы на все вопросы, и все они работали отлично.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню