Допустим существует таблица goods (товары) содержащая поля id (идентификатор), code (номенклатура), name (наименование), category (категория), price (цена)
Нужно вывести список товаров из категории «Ноутбук»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $result = mysql_query("SELECT * FROM `goods` WHERE `category`='Ноутбук'"); $n = mysql_num_rows($result); // Узнаём количество строк результата запроса $out = ""; // Переменная в которую запишем вывод. for($i=0;$i<$n;$i++){ $id = mysql_result($result,$i,'id'); $code = mysql_result($result,$i,'code'); $name = mysql_result($result,$i,'name'); $price = mysql_result($result,$i,'price'); $out .= "<tr> .<td>$id</td> .<td>$code</td> .<td>$name</td> .<td>$price</td> .</tr>"; } ?> |
Далее для примера в том-же скрипте после закрывающего php-тега следует вывод результата в html»?>»
1 2 3 4 5 |
<table> <tbody> <?php echo $out; ?> </tbody> </table> |
Сам запрос в mySQL был:
1 |
SELECT * FROM `goods` WHERE `category`='Ноутбук'; |
Если нужно ограничить вывод количеством строк результата:
1 |
SELECT * FROM `goods` WHERE `category`='Ноутбук' LIMIT 30; |
Если нужно при этом сортировать вывод по столбцу name:
1 |
SELECT * FROM `goods` WHERE `category`='Ноутбук' ORDER BY `name` LIMIT 30; |
Если нужно при этом сортировать по убыванию:
1 |
SELECT * FROM `goods` WHERE `category`='Ноутбук' ORDER BY `name` DESC LIMIT 30; |
Для отладки, можно добавить к функции mysql_query() следующее
1 |
mysql_query("SELECT * FROM `goods` WHERE `category`='Ноутбук'") or DIE("error:".mysql_error()); |
В таком виде, если запрос составлен некорректно, вместо списка товара будет показана mysql-ошибка. Важно убрать функцию mysql_error() до момента публикации проекта, так как отображение любых ошибок это потенциальная уязвимость.