2013-03-08 2 views
-1

На моем сайте мне нужно отображать все продукты на одной странице. Позвольте мне объяснить это дальше. Детали элементов будут сохранены в таблице mysql. Мне нужно создать страницу каталога бренда, используя эти элементы. Если есть товары Начиная с Letter A,Список товаров в соответствии с первой буквой товаров

  • Armani
  • Анан
  • Aungudo

И детали, начиная с B,

B

  • Bacardi
  • Barloni

Как, что A-Z мне нужно display.But Я новичок в PHP и пытался создать логику, но не пришли ни с чем. , пожалуйста, можете ли мне помочь мне на этом?>

Спасибо заранее.

Быстрый ответ будет таким приятным.

БЛАГОДАРЯ

+0

Можете ли вы показать свой запрос mysql? Вы используете Order By? – soyuka

+0

Да, я использую ORDERBY CLAUSE в моем SQL QUERY ... это мой запрос SELECT DISTINCT name, id FROM other ORDER BY name – user2147700

ответ

0

Try упорядочить по в MySQL Query

SELECT id,name from TABLE order by name asc; 

Теперь поиск символа «A» в, начиная с того, что вы получили от вашего запроса и создать блок соответственно.

1

Вы говорите, что используете MySQL, но по какой-то причине хотите выполнить сортировку на PHP. Вы знаете о конструкции ORDER BY в (My) SQL?

Это упрощает сортировку записей по алфавиту даже до того, как они войдут в PHP.Представьте запрос, который выглядит примерно так:

SELECT name 
FROM table 

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

John 
Abe 
Pete 
Frank 

Но при использовании ORDER BY конструкции и превратить ваш запрос в:

SELECT name 
FROM table 
ORDER BY name 

Вы получаете результат в алфавитном порядке (по умолчанию для текстовых типов данных)

Abe 
Frank 
John 
Pete 

Если вы решили, что предпочел бы сортировать по убыванию, просто используйте ORDER BY name DESC (или ASC явно заказать по возрастанию)

+0

К сожалению, я пропустил ваш вопрос как «как сортировать по алфавиту», а не «Как распечатать сгруппированные записи в PHP». – Joost

+0

yes Joost, вот как сгруппировать записи. Это не совсем то, что я хочу. Но очень ценю вашу поддержку. – user2147700

3

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

$sql  = mysql_query("SELECT * FROM ......"); 

$res  = array(); 
while($row = mysql_fetch_assoc($sql)){ 
    $title = $row['title']; 
    $letter = substr($title, 0, 1); 
    $res[$letter][] = $title; 
} 

ksort($res); 
echo "<pre>"; 
print_r($res); 
+0

Приятный подход, остальные ответы просто показывают запрос sql, и я думаю, что это не самая сложная часть! – darkheir

0

Предложить этот способ подхода:

  1. Сортировка ваш список результатов сначала в mysql, как предложил @SudipPal.
  2. Итерация отсортированных элементов, использующих for петлю
  3. Соберите все «A-х и подтолкнуть их в новый ассоциативный массив с key как„A“
  4. Повторите для остальных букв

Вы должны закончить с ассоциативным массивом, как эта структура:

array(
    "A" => array("Armani", "Anan", "Aungundo"), 
    "B" => array("Bacardi", "Barloni"), 
    "C" => ... , 
    ... 
) 
0

Вы можете решить эту проблему с помощью Mysql запрос, как это:

$letter = 'a'; // or 'b' ... 'z' 
$q = mysql_query(" select * from `my_table` where `my_coloumn` like '".$letter."%' "); 
while($r = mysql_fetch_object($q)) 
{ 
    echo $r->my_cloumn.'<br />'; 
} 
Смежные вопросы