Помогите сделать поиск по ДБ

R00miss

Guest
Выбор прост :
SELECT A.lastname, P.poem
FROM Author A, Poem P
WHERE A.id = P.author_id AND A.firstname='$firstname' AND A.lastname='$lastname'

Вот это?
А можно объяснить для чего буквы А и Р ?
 

ForJest

- свежая кровь
A и P это так называемы aliases. Т.е. чтобы не писать полное название таблицы в запросе им присваивают сокращения, которые действительны в пределах этого запроса.
Иначе приглось бы писать, например, Author.id=Poem.author_id.
 

R00miss

Guest
блин не пашет у меня не фига! :(

вообщем есть таблицы:
authors - id, firstname, lastname
poems - author_id, id, pname, poem, date

Допустим в authors есть запись - 1, imya, familiya
и в poems есть запись - 1, 1, Название, Стих, Дата

1. как мне теперь вывести оглавление исспользуя ссылку - /?p=view&first=imya&last=familiya
view - это файл(view.php) который все показывает, остальное из БД идет

2. как просмотреть запись с сылкой /?p=view&first=imya&last=familiya&id=1

3. и как же мне всетаки сделать то, про что вся эта тема - т.е. ПОИСК ???
 

R00miss

Guest
* запись с ссылкой /?p=view&first=imya&last=familiya&id=1
имеется ввиду - название стиха, стих, дата

просто если вдруг непонятно :)
 

.des.

Поставил пиво кому надо ;-)
1. как мне теперь вывести оглавление исспользуя ссылку - /?p=view&first=imya&last=familiya
view - это файл(view.php) который все показывает, остальное из БД идет
А ты не используй такую ссылку.
А используй
/?p=view&id=ID_AUTORA (например 1)
и тогда все стихи этого автора будешь доставать из таблицы poems таким запросом
PHP:
SELECT * FROM poems WHERE author_id=ID_AUTORA
2. как просмотреть запись с сылкой /?p=view&first=imya&last=familiya&id=1
не понял чего ты хочешь :(
3. и как же мне всетаки сделать то, про что вся эта тема - т.е. ПОИСК ???
До сих пор не понял?
допустиму у тебя поисковый запрос - "чудное мгновенье"
разбиваешь запрос на слова -$word1 и $word2
поиск всех стихов где встречается ЛЮБОЕиз слов делается с помощью этого запроса
PHP:
SELECT * 
FROM poems 
WHERE 
(poem LIKE '%$word1%' OR pname LIKE '%$word1%') OR 
(poem LIKE '%$word2%' OR pname LIKE '%$word2%')
поиск всех стихов где встречаются ОБАиз слов делается с помощью такого запроса
PHP:
SELECT * 
FROM poems 
WHERE 
(poem LIKE '%$word1%' OR pname LIKE '%$word1%') AND 
(poem LIKE '%$word2%' OR pname LIKE '%$word2%')
 

R00miss

Guest
re1: Нада сделать оглавление + вверху страницы написать имя автора... т.е. получается что нада вытаскивать автора из одной таблицы и вытаскивать список стихов из другой таблицы... как так мона сделать?

re2: Ну это всмысле из оглавления выбрать стих чтобы прочитать, и тогда на странице показываются поля - имя стиха, стих, дата... ну это я вроде бы как то понимаю :)

Спасибо за поиск!!!
 

R00miss

Guest
to .des.:

re1: Нада сделать оглавление + вверху страницы написать имя автора... т.е. получается что нада вытаскивать автора из одной таблицы и вытаскивать список стихов из другой таблицы... как так мона сделать?

re2: Ну это всмысле из оглавления выбрать стих чтобы прочитать, и тогда на странице показываются поля - имя стиха, стих, дата... ну это я вроде бы как то понимаю

Спасибо за поиск!!!
 

RomikChef

Guest
R00miss, голова у тебя для того, чтобы есть?
я тебе, канадско-подданному,пишу имя и фамилию в именах переменных по-английски , а у тебя в запросе они по-русски.
ну так ты не копируй, как обезьяна!!!
ты с умом читай!
что непонятно - спрашивай!
 

R00miss

Guest
кто тебе сказал что я копирую как обезьяна???
и кто тебе сказал что имена в запросе по-русски ?

вот не понятно то, что он мне ошибку майскуэла сует
 

R00miss

Guest
Warning: Supplied argument is not a valid MySQL result resource in file.php on line blabla

вот это непонятно :)
 

R00miss

Guest
чё это значит?
я говорю что у меня он ничего не выводит а ты мне ерор даеш...

напиши плиз как полный запрос делать, всмысле с самого начала - $db = mysql_connect("localhost", "",""); и т.д.
 

RomikChef

Guest
а может тебя еще в лобик поцеловать?
составляй запрос.
если ошибка - пиши echo mysql_error()
оно тебе напишет, где ошибка.
если сам не поймешь - неси сюда.

и не попрошайничай готовый код, если не понимаешь, как он работает!
Лучше спроси - что и почему.
 

R00miss

Guest
спасибо! все работает!!!
НО! появилась еще одна проблема - есть строчка count(id) чтоб выводить постраничный результат, но теперь он считает id всех стихов, т.к. они в одной таблице - и рисует страницы 48 страниц, из которых показывает результат только на 5, т.к. эти 5 которые мне нужны... как с этим бороться? :)
 

RomikChef

Guest
добавить в эту строчку такое же условие - where first=$first...
 

R00miss

Guest
хм... если я дописаваю where то разбитие пропадает и все стихи на одной странице оказываются :(
 
Сверху