Здравствуйте, уважаемые умные люди!!!!!
Проблема такая делаю сайт на экзамен. Нужен поиск по сайту, искать должен товары, выводить все что нашел на экран и то что он нашел должно быть в виде ссылок.
т.е. нашли товар нажали на него и перешли на его описание.
Все было бы очень просто еслиб товары эти были отдельными страницами, но у меня они хранятся в базе.
Есть такой момент: у меня есть страница шаблон(index.php) и в ее определенное место я вывожу все что надо. я вывожу товары по категориям так страница (саt.php )
<?php
$cat = $_GET['id'];
$products = get_cat_products($cat);
foreach($products as $item):?>
<h1>Привет</h1>
<div><a href="index.php?view=product&id=<?php echo $item['id']?>"><img src="userfiles/<?php echo $item['image']?>" alt="" /></a></div>
<div class="description">
<div class="product-name"><a href="index.php?view=product&id=<?php echo $item['id']?>"><?php echo $item['title']?></a></div>
<div class="product-price">Цена: <?php echo $item['price']?> $</div>
</div>
<?php endforeach;?>
вот страница где выводятся продукты (product)
<?php $id = $_GET['id'];
$product = get_product($id); ?>
<div><a href="#"><img src="userfiles/<?php echo $product['image']?>" alt="" /></a></div>
<div class="description">
<div class="product-name"><a href="#"><?php echo $product['title']?></a></div>
<div class="product-price">Цена: <?php echo $product['price']?> $</div>
</div>
<div> <?php echo $product['description']?></div>
<div><a href="index.php?view=add_to_cart&id=<?php echo $product['id']?>">Добавить в корзину</a></div>
вот страница поиска ( search)
<?php
/* Открываем соединение с базой данных*/
function connectDB (){
// Определяем константы для соединения с базой данных
define('DB_HOST', 'localhost');
define('DB_USER', 'shop_user');
define('DB_PASS', 'admin123');
define('DB_NAME', 'shop');
//Пытаемся соединится с базой данных
$dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASS)
or die("Ошибка соединения с базой данных! " . mysql_error());
//и выбрать таблицу
mysql_select_db(DB_NAME);
// Устанавливаем кодировку
mysql_query('SET NAMES cp1251');
//Возвращаем дескриптор соединения
return $dbconn;
}
/*Закрываем соединение с базой данных*/
function closeDB($dbconn){
mysql_close($dbconn);
}
/*Обработка поискового запроса*/
function search ($query) {
$text = '';
// Проводим фильтрацию данных
$query = trim($query); // Обрезаем пробелы и спецсиволы
$query = strip_tags($query); // Удаляем HTML и PHP теги
$query = mysql_real_escape_string($query); // Экранируем специальные символы
//Поисковый запрос не пустой?
if (!empty($query)){
if (strlen($query) < 4) {
$text = '<p>короткий поисковый запрос.</p>';
}elseif (strlen($query) > 128) {
$text = '<p>длинный поисковый запрос.</p>';
} else {
//Формируем строку поискового запроса
$sql = "SELECT `id`, `title`, `description`, `price`, image, col, cat
FROM `products` WHERE `description` LIKE '%$query%'
OR `title` LIKE '%$query%'";
// и выполняем его
$result = mysql_query($sql);
//Определим колличество найденных совпадений
$num = mysql_num_rows($result);
//Если число совпадений (строк результата запроса) больше 0
if ( $num > 0) {
//Получаем ассоциативный массив
$row = mysql_fetch_assoc($result);
//и начинаем формировать строку поисковой выдачи
$text .= '<p>По вашему запросу <strong>'.$query.'</strong>';
$text .= ' найдено '.$num.' совпадений</p>' ;
do {
//Продолжаем формировать строку поисковой выдачи
$text .= '<p><a href="index.php'.$row['articleId'].'">';
$text .= $row['title'].'</a></p>';
$text .= '<p>'.$row['tinyDescription'].'</p>';
// Делаем это пока у нас есть результаты
} while ($row = mysql_fetch_assoc($result));
} else {
// Найти совпадение не удалось
$text = '<p>По вашему запросу ничего не найдено.</p>';
}
}
}else {
$text = '<p>Задан пустой поисковый запрос.</p>';
}
//Возвращаем сформированную строку поисковой выдачи
return $text;
}
if (isset ($_POST['query']) && !empty($_POST['query'])){
// Открываем соединение с базой данных
$connect = connectDB();
$search_result = search ($_POST['query']);
echo $search_result;
// Закрываем соединение с базой данных
closeDB ($connect);
}
?>
оно все работает но мой вопрос как сделать чтоб ссылка была на тот товар который нашелся. Если ищем машину результат поиска машина нажимаем на нее и попадаем на страницу с ее описанием. Я не пойму как это вот здесь оформить
$text .= '<p><a href="index.php'.$row['articleId'].'">';
$text .= $row['title'].'</a></p>';
$text .= '<p>'.$row['tinyDescription'].'</p>';