сопоставление строки с базой данных - PullRequest
0 голосов
/ 19 января 2010

Я кодирую простой 404 SEO для моего сайта. Я немного запутался в одном месте. Мне нужны коды, чтобы просмотреть таблицу категорий и посмотреть, соответствует ли она строке. Если да, то он должен напечатать название категории, если нет, то должен отобразить сообщение «страница не найдена». Я не понимаю, где я ошибся здесь ...

> > <%
> >     WebsiteQueryString = Request.QueryString
> >     SplitQueryString = split(WebsiteQueryString, "/")
> > 
> >     SQL = "SELECT C.CATEGORYID,
> > C.CATEGORYNAME"     SQL = SQL & " FROM
> > CATEGORIES C"   Set objCategory =
> > objConn.Execute(SQL)    
> > 
> >     If objCategory("CATEGORYID") =
> > SplitQueryString(4) Then     %>
> > 
> > <%=objCategory("CATEGORYNAME")%>
> > 
> > <% Else %>
> > 
> 
>     enter code here`page not found.
> 
> > 
> > 
> > <% End If %>

Ответы [ 2 ]

0 голосов
/ 19 января 2010

Некоторые подсказки:

1 / использовать cInt (или cStr)

If objCategory("CATEGORYID") = SplitQueryString(4) Then   

Если SplitQueryString(4) - это число, попробуйте поставить cInt( перед обоими операндами, как в

If cInt(objCategory("CATEGORYID")) = cInt(SplitQueryString(4)) Then   

Если сталкивались с ситуациями, когда мне нужно было это сделать, чтобы было хорошее сравнение.

2 / попробуйте записать значения на экране , прежде чем сравнивать их (вы уверены, что сравниваете с правильным элементом?)

Response.Write( "[" & objCategory("CATEGORYID" & "]")
Response.Write( "[" & SplitQueryString(4) & "]" )

Я всегда заключаю их в квадратные скобки, чтобы увидеть, есть ли пустая строка

3 / Тест для IsNull ()

Попробуйте проверить IsNull () для вашего objCategory("CATEGORYID"), так как я думаю, что значения полей равны Null, если их нет в записи

4 / Убедитесь, что вы используете правильное имя поля (CATEGORYID) - проверьте орфографию

0 голосов
/ 19 января 2010

Ладно, я немного заржавел на Классическом ASP, но, похоже, вам, вероятно, нужно что-то похожее на это:

<% 
    WebsiteQueryString = Request.QueryString 
    SplitQueryString = split(WebsiteQueryString, "/") 

    ' I'm assuming SplitQueryString(4) is a number, as is CATEGORYID
    SQL = "SELECT CATEGORYNAME FROM CATEGORIES WHERE CATEGORYID = " & SplitQueryString(4)
    Set objCategory = objConn.Execute(SQL)     

    If objCategory("CATEGORYNAME") <> "" Then

    Response.Write(objCategory("CATEGORYNAME"))

    Else %> 

  enter code here`page not found. 

<% End If %> 

Еще один важный комментарий по этому поводу.При таком подходе вы сильно подвержены атакам SQL-инъекций.Я бы предложил хранимую процедуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...