Добавление текста из таблицы MySQL в середину URL на странице PHP - PullRequest
0 голосов
/ 19 октября 2010

Я постараюсь спросить это правильно. Это заставило меня лизнуть.

У меня есть онлайн-скрипт, который будет отображать элементы в соответствии с поиском, скажем, page1.php. Результаты приходят из таблицы, называемой элементами. В списке результатов есть ссылки на элементы, которые выглядят так: a href = \ "/". "Лодки / $ имя /". "$ Р". $ Строка [ "PID"]. ".Html \"

В другой таблице в той же базе данных есть таблица с именем "morphlinks", в которой есть два поля: elink и ulink. elink имеет идентификаторы, которые соответствуют идентификаторам в таблице с именем «items».

CREATE TABLE IF NOT EXISTS morphlinks ( 
  elink varchar(128) NOT NULL default '',
  ulink varchar(255) NOT NULL default '', 
  PRIMARY KEY (elink) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO morphlinks (elink, ulink) VALUES ('12345', 'canoes/Blue-Canoes/Bob-Morris/');

То, что я надеюсь сделать, это добавить то, что в соответствующей строке в "морфлинках", к URL, где вы видите "boats / $ name /". Таким образом, список предметов с URL для их отображения будет выглядеть на странице php: a href = www.domain.com / canoes / Blue-Canoes / Bob-Morris / 12345.html где каноэ / Blue-Canoes / Bob- Morris / - это то, что находится в таблице «morphlinks», а 12345 - это номер PID.

Все работает нормально, за исключением каноэ / Blue-Canoes / Bob-Morris / part. Я не могу понять, как включить эту часть в URL. URL-адрес работает нормально и идет к тому же элементу, находится ли он там или нет, но мы хотим, чтобы он был там для целей SEO. Время от времени мы будем вручную заполнять таблицу «morphlinks».

Спасибо, Douglas

1 Ответ

0 голосов
/ 19 октября 2010

Ваш вопрос не совсем ясен в отношении кода, повторяющегося над строками, но я предполагаю, что $line - это строка mysql в виде ассоциированного массива. ... если вы хотите обновить свой вопрос с более подробной информацией, я могу дать вам что-то более точное, но следующий способ - это общий способ ...

Сначала измените запрос, чтобы присоединить morphlinks к элементам .. я предполагаю pid == elink

SELECT items.*, ml.ulink from items
LEFT JOIN morphlinks ml ON (items.pid = ml.elink)

Так что теперь в вашем массиве rsults вы должны иметь $line['elink'].

отсюда легко (я собираюсь использовать sprintf для здравомыслия!):

sprintf(
   'a href="/%s%s%s.html"', 
   (!empty($line['elink']) ? $line['elink'] : "boats/$name/"), 
   $p,
   $line['PID']
)
...