Squeak.ru - шаблоны программирования

array_unique не работает в PHP?

У меня есть таблица в моей базе данных MySql:

  pageid   | text
-----------+----------
    1      | test
-----------+----------
    2      | example
-----------+----------
    3      | another
-----------+----------
    1      | example1

и этот PHP-код:

$query = "SELECT pageid FROM test";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
  {
  $id = $row['pageid'];
  $id1 = array($id);
  $id2 = array_unique($id1);
  foreach ($id2 as $value)
    {
    echo $value . "<br>";
    }
  }

Но он возвращает:

1
2
3
1

Я хотел бы сделать pageids уникальными. Итак, я хотел бы повторить число 1 один раз. Как это:

1
2
3

Так что я делаю неправильно? Как я мог добиться того, чего хочу?

Заранее спасибо...

[Я знаю, что этот код не имеет особого смысла, но это всего лишь демо для этого вопроса, а у меня гораздо более сложный код :)]


  • Я уверен, что вы знаете, что вы можете использовать group by в mysql, но на всякий случай, вот ваше внимание. 13.12.2011

Ответы:


1

Конечно, реальный ответ в этой ситуации — выбрать для начала отдельные записи:

$query = "SELECT DISTINCT pageid FROM test";

Но что касается того, почему ваш код не работает...

Вы объявляете $id1 как массив, но не добавляете к нему. Вместо этого вы просто создаете массив из 1 элемента каждый раз. Вместо этого добавьте все результаты, затем вызовите array_unique()

$query = "SELECT pageid FROM test";
$result = mysql_query($query);

// Declare array first
$id1 = array();
while($row = mysql_fetch_array($result))
  {
  $id = $row['pageid'];
  // Append to the array...
  $id1[] = $id;
  }

// Call array_unique() outside the loop:
$id2 = array_unique($id1);
foreach ($id2 as $value)
{
  echo $value . "<br>";
}
13.12.2011

2

Вы можете сделать это в своем SELECT, выполнив что-то вроде SELECT DISTINCT pageid FROM test или используя GROUP BY следующим образом:

SELECT pageid FROM test WHERE 1 GROUP BY pageid 
13.12.2011

3

Вы можете использовать ключевое слово Distinct в своем sql-запросе. Это вернет вам уникальные значения страницы

13.12.2011
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...