Как вернуть значение столбца только один раз в MySQL - PullRequest
2 голосов
/ 10 июня 2011

Мне нужна помощь с этим. У меня есть база данных, которая отображает названия продуктов.

Пока мой код:

    $query = mysql_query("SELECT type FROM certs ORDER by type") or die("Could not execute query"); 


while($row = mysql_fetch_array($query) )
{

   $product .= "<h1>".$row["type"]."</h1>";
}

echo($product);

, который возвращает

<h1>MR001</h1>
<h1>MR001</h1>
<h1>MR002</h1>
<h1>MR003</h1>
<h1>MR003</h1>
<h1>MR004</h1>
<h1>MR004</h1>
<h1>MR004</h1>

и т. Д., Но мне нужно, чтобы одно и то же значение возвращалось только один раз?

Как

<h1>MR001</h1>
<h1>MR002</h1>
<h1>MR003</h1>
<h1>MR004</h1>

STUCK.COM HELP !!!

Ответы [ 8 ]

6 голосов
/ 10 июня 2011

Использовать DISTINCT в запросе SQL. Попробуйте это:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query");

while($row = mysql_fetch_array($query) ) 
{     
   $product .= "<h1>".$row["type"]."</h1>"; 
}  
6 голосов
/ 10 июня 2011

Измените запрос на использование DISTINCT, который будет возвращать только уникальные строки:

mysql_query("SELECT DISTINCT type FROM certs ORDER by type")

Для простоты использования весь исправленный код будет выглядеть следующим образом:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query");
while($row = mysql_fetch_array($query) )
{
    $product .= "<h1>".$row["type"]."</h1>";
}
echo($product);
4 голосов
/ 10 июня 2011

Лучше сделать это с MySQL, используя DISTINCT

SELECT DISTINCT type FROM certs ORDER by type

Подробнее о , используя DISTINCT в MySQL .

2 голосов
/ 10 июня 2011

Использовать группу по

SELECT type FROM certs GROUP BY type

(бит оффтоп) - лучше иметь определения типов в отдельной таблице (например, не в сертификатах, но в собственной таблице) - и связывать через внешний ключ (например,type_id вместо type - 1 для MR001, 2 для MR002 и т. д.)

Для перечисления сертификатов с именами типов используйте JOIN

2 голосов
/ 10 июня 2011

Посмотрите на GROUP BY, а также на операторов DISTINCT.

Для вашего конкретного примера:

$query = mysql_query("SELECT DISTINCT type FROM certs ORDER by type") or die("Could not execute query"); 
2 голосов
/ 10 июня 2011

Попробуйте DISTINCT:

"SELECT DISTINCT type FROM certs ORDER by type"
2 голосов
/ 10 июня 2011

Я думаю, что вы хотите использовать SELECT DISTINCT type. , , .

1 голос
/ 10 июня 2011

Вы ищете SELECT DISTINCT.Вы можете просмотреть полный синтаксис MySQL для Select .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...