Результаты SQL в массив PHP - PullRequest
1 голос
/ 28 ноября 2009

Я хотел бы создать массив (в php) из результатов sql следующим образом: У нас есть sql-таблица "Posts", в которой хранятся Name и Message . Пример:

Имя | Сообщение

Джон | Hello

Ник | хороший день

Джордж | До свидания

Джон | где

Я хочу выводить имена людей, которые опубликовали сообщение, но не отображают одни и те же имена более 1 раза . Таким образом, на выходе будут Джон, Ник, Джордж. (Из этих записей мы видим, что Джон опубликовал 2 сообщения, но при окончательном выводе мы видим только один раз его имя).

Это как-то возможно? Заранее спасибо.

Ответы [ 5 ]

1 голос
/ 28 ноября 2009

Попробуйте:

$sql = <<<END
SELECT DISTINCT Name FROM Posts
END;
$query = mysql_query($sql) or die($sql . ' - ' . mysql_error());
$names = array();
while ($row = mysql_fetch_array($query)) {
  $names[] = $row[0];
}
print_r($names);
0 голосов
/ 11 февраля 2012

Вот SQL, если вы не против группы BY

select count(name) as N, name from posts group by name ;

Люди, имеющие более 1 поста

select count(name) as N, name from posts group by name having N > 1 ;
0 голосов
/ 28 ноября 2009

, чтобы получить количество, которое вам нужно агрегировать, используя группу по:

SELECT NAME , COUNT(*) as Posts FROM Posts GROUP BY NAME

0 голосов
/ 28 ноября 2009

Вы можете запустить SQL-запрос, чтобы выбрать отдельные имена и ничего больше:

SELECT DISTINCT Name FROM Posts;

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

0 голосов
/ 28 ноября 2009

ВЫБЕРИТЕ DISTINCT

...