2013-10-08 1 views
1

Я пытаюсь показать все компании, которые связаны с определенным ID (practice_Area_ID). Я не могу понять, устанавливаю ли я неправильную форму Do Loop или если это проблема с моим кодом SQL.Как удалить/исправить повторяющиеся записи в Classic asp

Проблема заключается в отображении только одной компании (когда должно быть 5 разных), и она дублируется несколько раз в зависимости от того, сколько из областей практики было найдено (5 в этом случае).

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

Игнорируйте мое ужасное форматирование таблицы ... просто пытаюсь получить результаты для отображения здесь.

<% 
intPractice_Area_ID = Request.QueryString("intPractice_Area_ID") 
%> 

(Random HTML здесь)

<% 

Set rsCompInfo = Server.CreateObject ("ADODB.Recordset") 
compSQL = "SELECT Company_Main.Company_Name, Company_Main.Company_address, Practice_Areas.Practice_Area_ID FROM Practice_Areas INNER JOIN (Company_Main INNER JOIN Company_Practice_CK ON Company_Main.Company_ID = Company_Practice_CK.Company_ID) ON Practice_Areas.Practice_Area_ID = Company_Practice_CK.Practice_Area_ID WHERE Company_Practice_CK.Practice_Area_ID =" & intPractice_Area_ID 
rsrsCompInfo.Open compSQL, Conn 
strName = rsProdInfo("Company_Name") 
strAddress = rsProdInfo("Company_Address") 

%> 

<table width="200" border="1"> 
    <tr> 
     <th>Firm Name</th> 
     <th>Address</th> 

    </tr> 

<% 


if rsCompInfo.EOF then 
Response.Write "No Records Found!" 
else 
strName = rsCompInfo("Company_Name") 
strAddress = rsCompInfo("Company_Address") 

Do While Not rsCompInfo.EOF 
%> 


<table border="1" cellspacing="0" cellpadding="2" width="602"> 
    <tr> 

     <td width="560" valign="top"><font face="Verdana" size="3"><b><%= strName %></b></font><p> 
     <td width="560" valign="top"><font face="Verdana" size="3"><b><%= strAddress %></b></font><p>   
      <input type="hidden" name="intPractice_Area_ID" value="<%= intPractice_Area_ID %>"> 
    </tr> 

     <td width="34"><td width="560"><font face="Verdana" size="2"> 
</table> 
<% 
rsCompInfo.MoveNext 
Loop 

end if 

rsCompInfo.Close 
set rsCompInfo = Nothing 

Conn.Close 
set Conn = Nothing 

ответ

0

Это абсолютно правильно:

Do While Not rsCompInfo.EOF 
    ... 
    rsCompInfo.MoveNext 
Loop 

Но вам нужно прочитать текущие значения rsCompInfo каждый раз, когда вы идете через петлю:

<%= rsCompInfo("Company_Name") %> 
    <%= rsCompInfo("Company_Address") %> 

'Хоп e, что помогает!

+1

Это позаботилось о моей проблеме. Не знаю, почему я не пытался это начать. благодаря – user2856953