У меня есть веб-сайт, который в настоящее время имеет форму поиска, написанную ASP. Поиск вызывает мою базу данных SQL и помещает результаты в таблицу с интерактивными изображениями на страницы HTML для каждого результата поиска. В настоящее время я сортирую результаты по полю в моей таблице SQL. Код для каждого результата поиска выглядит следующим образом:
<a href="/model-homes/<%# DataSet1.FieldValue("address", Container) %>/index.html"><img src="/model-homes/<%# DataSet1.FieldValue("address", Container) %>/plan-1st-floor.jpg" width="400" border=0/></a>
То, что я хотел бы сделать, - это нажать ссылку, чтобы отправить базу данных SQL и добавить +1 в число просмотров. Таким образом, я могу изменить свой вид на кол-во просмотров и получить самые популярные ссылки в верхней части результатов поиска. Первичным ключом для базы данных SQL является поле "адрес", если это помогает увеличить количество просмотров.
Любая помощь с этим будет очень признательна, поскольку я, кажется, на пределе своих знаний о программировании.
- Обновление № 1 -
Поэтому я пытаюсь это преодолеть. Могу ли я добавить код для обновления базы данных SQL прямо в ссылку? Кажется, он не работает.
<a href="/model-homes/<%# DataSet1.FieldValue("address", Container) %>/index.html" onclick="UPDATE dbo.main SET pageview=pageview+1 WHERE address=<%# DataSet1.FieldValue("address", Container) %>"><img src="/model-homes/<%# DataSet1.FieldValue("address", Container) %>/plan-1st-floor.jpg" width="400" border=0/></a>
Я не уверен, должен ли я назвать это по-другому. Я пытаюсь.
- Обновление № 2 -
Поэтому я попытался изменить код еще раз, чтобы понять это. Итак, теперь я пытаюсь передать это через функцию, потому что я не думаю, что она будет работать в гиперссылке. Так вот что я сделал:
<a
href="model-homes/<%# DataSet1.FieldValue("address", Container) %>/index.html"
onclick="UpdateDB(<%# DataSet1.FieldValue("address", Container) %>)"
>
<img
src="model-homes/<%# DataSet1.FieldValue("address", Container) %>/plan-1st-floor.jpg"
width="400"
border=0
/>
</a>
И это функция:
function UpdateDb(@address)
{
SELECT pageview FROM dbo.main WHERE address=@address
UPDATE pageview=pageview+1 FROM dbo.main WHERE address=@address
}
Любая помощь в этом будет принята с благодарностью.
Подход, который вы пытаетесь, может быть успешным, если вы можете изменить index.html на index.aspx, чтобы решить эту проблему:
Использование переменной строки запроса, но она основана на предположении, что index.html можно изменить на index.aspx:
<a href="/model-homes/<%# DataSet1.FieldValue("address", Container) html"
<img src="/model-homes/<%# DataSet1.FieldValue("address", Container) %>
/plan-1st-floor.jpg" width="400" border=0/>
</a>
Добавьте переменные строки запроса в конец index.html, как указано ниже:
<a href="/model-homes/<%# DataSet1.FieldValue("address", Container)%>
/index.aspx?name=<%# DataSet1.FieldValue("address", Container) %>"
<img src="/model-homes/<%# DataSet1.FieldValue("address", Container) %>
/plan-1st-floor.jpg" width="400" border=0/>
</a>
Если index.html не может быть изменен на index.aspx, тогда создайте промежуточную страницу для перехода от index.html?name=<%# DataSet1.FieldValue("address", Container) %>
к newpage.aspx
, выполните обработку обновления до базу данных по функции pageload, а затем перенаправить обратно в index.html.