Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 11

Вывод результата поиска из нескольких таблиц БД.

17.02.2012, 13:33. Показов 3894. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день!

Прошу помощи в решении проблемы вывода поиска по нескольким таблицам БД

Есть 2 таблицы с одинаковыми полями id, title, text.

Вот скрипт формы поиска
form.html

PHP Скопировано
1
2
3
4
5
6
7
<form action="search.php" method="post">
<tt>
Поиск<br />
<input type="text" name="search" value="что искать?" onclick="search.value='';"/><br /><br />
<input type="submit" name="submit" value="искать"/>
</tt>
</form>
Далее search.php. Он выводит найденную информацию в виде ссылки:
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
include"bd.php";
$search=$_POST["search"];
$search=trim($search);
$search=htmlspecialchars($search);
$search=stripslashes($search);
 
$products = mysql_query("SELECT `id`,`title`,`text` FROM articles WHERE `title` LIKE '%$search%' UNION SELECT `id`,`title`,`text` FROM blog WHERE `title` LIKE '%$search%' ", $db);
while($array = mysql_fetch_array($products)){
 
    printf('<p><a href="articles.php?id='.$array['id'].'">'.$array['title'].'</a>');
    }   
 
?>
Далее articles.php, который при нажатии на ссылку, должен выводить информацию из соответствующей таблице. Однако он выводит информацию из всех таблиц по найденному id:
PHP Скопировано
1
2
3
4
5
6
7
8
9
<?php
include"bd.php";
 
$result = mysql_query("SELECT * FROM articles WHERE id='".$_GET["id"]."' UNION SELECT * FROM blog WHERE id='".$_GET["id"]."'");
while($array = mysql_fetch_array($result)){
printf($array['text']);
}
 
?>
Как правильно написать данный скрипт, чтобы выводил нужную информацию по ссылке?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2012, 13:33
Ответы с готовыми решениями:

Вывод результата запроса из нескольких таблиц
SELECT news.entry_url, news.entry_title, publ.entry_url, publ.entry_title FROM news,publ LIMIT 10 Делаю запрос через pma,...

Вывод результата поиска
Программа считывает из файла данные, потом осуществляет поиск по Id - номеру и должна вывести строку с Id, именем, фамилией и пр., но в...

Выборка из нескольких таблиц БД для поиска на сайте
Здравствуйте уважаемые пользователи форума .Подскажите как сделать выборку из нескольких таблиц в БД для поиска на сайте.Моя выборка ищет...

8
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
17.02.2012, 13:55
Или так
PHP Скопировано
1
$result = mysql_query("SELECT articles.*, blog.* FROM articles, blog WHERE id='".$_GET["id"]."'");
Или так
PHP Скопировано
1
$result = mysql_query("SELECT articles.*, blog.* FROM articles, blog WHERE articles.id='".$_GET["id"]."' AND blog.id='".$_GET["id"]."'");
Нет возможности сейчас проверить
1
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 11
17.02.2012, 14:10  [ТС]
Спасибо, второй вариант работает!!!

Добавлено через 3 минуты
Блин..только описание по id выводит правильно, но из одной таблицы....blog
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
17.02.2012, 14:22
PHP Скопировано
1
$result = mysql_query("SELECT articles.*, blog.* FROM articles, blog WHERE articles.id='".$_GET["id"]."' AND blog.id=articles.id");
А если так?

Добавлено через 30 секунд
Из таблицы articles вообще что-то выводит?

Добавлено через 3 минуты
Стоп, все правильно. У Вас же имена столбцов совпадают. Попробуйте изменить имена столбцов и посмотреть изменит ли что-то это.
0
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 11
17.02.2012, 14:23  [ТС]
Ссылки правильно выводятся, только когда , например, нахожу слово ложка, которая находится в articles, при нажатии ссылки выдаёт результат id таблицы blog. То есть он проводит поиск только по таблице blog....я так понимаю.

Изменение столбцов приводит к тому, что он теперь производит поиск по таблице articles. (((
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
17.02.2012, 14:28
Естественно в одной из табличек все поля кроме id При выборке выше получается примерно так: Он находит в таблице articles в столбце name "Ложка" по id, далее идет в blog и находит по этому же id в столбце name "Вилка". И заменяет Ложку на Вилку, т.к. имена совпадают.
0
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 11
17.02.2012, 14:47  [ТС]
Ну я id не меняю, а меняю только название столбцов в blog и он всё равно ищет по одной таблице articles (
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
17.02.2012, 16:51
Вам нужна конструкция Если не находит в одной - ищем в другой, или из той и той нужно вытащить параметры?

Добавлено через 22 минуты
запутали меня))
articles.php
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
<?php
include"bd.php";
 
$result = mysql_query("SELECT articles.*, blog.* FROM articles, blog WHERE blog.id='".$_GET["id"]."' AND articles.id='".$_GET["id"]."'");
 
while($array = mysql_fetch_array($result)){
printf($array['text']);
printf($array['text2']);
}
 
?>
Вот он и выдает с обоих таблиц) Поля то новые не вывели)

Добавлено через 6 минут
text2 это название вместо text столбца в blog
0
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 11
18.02.2012, 13:45  [ТС]
Спасибо большое, что уделяете мне время
Да в данном случае он будет выводит инфу из 2 таблиц, но мне нужно, чтобы выводил описание того названия, которое нашёл поисковик.
К примеру, вбиваю слово ложка, он мне находит ложка в виде ссылки и нажимая на неё, выводит её описание.
И ещё вопрос, можно ли сделать такую выборку, не меняя названия полей в таблицах, так как это сломает мою структуру сайта. Я в принципе не могу менять названия полей
Просто хотелось бы самостоятельно написать поиск по сайту.

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2012, 13:45
Помогаю со студенческими работами здесь

Вывод результата поиска в memo
Доброго времени суток! Есть такое вот затруднение! Есть таблица с овощами и их количеством. Нужно ввести в edit названия овоща, произвести...

Вывод результата поиска в mysql
Я делаю поиск по базе и мне нужно сначала вывести точное совпадение слова, а потом совпадению по корню. Мне нужно делать два sql запроса...

Вывод результата поиска в новой форме
Доброго времени суток! Имеется база с информацией о выставочных мероприятиях. На форме отображается основная характеристика мероприятий:...

Вывод результата поиска базы данных
Здрасти Искал тут на форуме интересующий меня тему так и не нашел Надеюсь ктонеть знает как решить вопрос Есть сайт в базе данных в...

Вывод результата поиска файлов в RichTextBox
Доброго времени суток, я новичок в windows forms applications, и у меня возникла небольшая трудность с реализацией задачи. Программа должно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер