1
Вёрстка сайтов на SantaFox / Помогите с php запросом
« Последний ответ от ГБПОУ ОМТ 29 марта 2023, 09:59:23 »Здравствуйте. Есть поиск по названию книги, хочу сделать чтобы работал и по автору.
Поиск работает как надо: находит список нужного автора и подставляет правильные данные с помощью echo
из-за этого у меня данные подставляются из книги где author_id = notice_id что не верно.
условно
книга 1 с автором 1 с notice_id=5628 и author_id=879
книга 2 с автором 2 с notice_id=879 и author_id=142
при поиске по автору 1 выдается книга 2
Есть идеи как это заставить работать? Буду благодарен.
php
https://drive.google.com/file/d/1Ynr0_0ka558JN0jg48kZK6fY50l1_IWz/view?usp=share_link
SQl:
https://drive.google.com/file/d/1N-8ctDFZ1yD0A7feRzutvS6xWSoYhSEN/view?usp=share_link
Поиск работает как надо: находит список нужного автора и подставляет правильные данные с помощью echo
Код: [Выделить]
$r = mysql_query($sql);
if($make = mysql_num_rows($r) > 0){
while($row = mysql_fetch_assoc($r)){
echo
НО КОГДА пытаюсь прикрутить стилизацию, вместо Цитировать
notice_idв переменную
Код: [Выделить]
while ($row = mysql_fetch_row($r)){
отправляется Цитировать
author_idкак это исправить никак не пойму.
из-за этого у меня данные подставляются из книги где author_id = notice_id что не верно.
условно
книга 1 с автором 1 с notice_id=5628 и author_id=879
книга 2 с автором 2 с notice_id=879 и author_id=142
при поиске по автору 1 выдается книга 2
Код: [Выделить]
elseif (!empty($action) && $action = 'searchauthor')
{
$search = htmlspecialchars($kernel->pub_httppost_get('user_query'));
$html = str_replace('%user_query%', $search, $html);
if(empty($search))return $html.$template['empty_query'];
$html .= $template['search_title'];
$html = str_replace('%user_query%', $search, $html);
//return $search;
$sql = "SELECT * FROM authors
INNER JOIN responsability
ON (responsability.responsability_author = authors.author_id)
INNER JOIN notices
ON (responsability.responsability_notice = notices.notice_id)
INNER JOIN exemplaires
ON (exemplaires.expl_notice = notices.notice_id)
INNER JOIN docs_location
ON (docs_location.idlocation = exemplaires.expl_location)
INNER JOIN publishers
ON (publishers.ed_id = notices.coll_id)
INNER JOIN collections
ON (collection_id = notices.coll_id)
WHERE
authors.author_name LIKE '%" .$search. "%' group by responsability_notice order by responsability_author";
$r = $kernel->runSQL($sql);
$html .= $template['search_result_top'];
while ($row = mysql_fetch_row($r)){
$ss = "SELECT notice_id, typdoc, tit1, tit2, tit3, tit4, tparent_id, tnvol, ed1_id, ed2_id, coll_id, subcoll_id,
year, nocoll, mention_edition,code, npages, ill, size, accomp, lang_code, org_lang_code, lien, eformat, index_l,
indexint, niveau_biblio, niveau_hierar, origine_catalogage, prix, n_gen, n_contenu, n_resume, statut
FROM notices WHERE notice_id='".$row[0]."'";
$ssr = $kernel->runSQL($ss);
Есть идеи как это заставить работать? Буду благодарен.
php
https://drive.google.com/file/d/1Ynr0_0ka558JN0jg48kZK6fY50l1_IWz/view?usp=share_link
SQl:
https://drive.google.com/file/d/1N-8ctDFZ1yD0A7feRzutvS6xWSoYhSEN/view?usp=share_link