2016-08-08 66 views
-1

Ich habe ein Problem mit meinem kalten Fusion/MySQL-Skript. Es geht so ... Ich habe zwei Infotafeln.Innere Schleife Abfrage nicht beabsichtigte Ergebnisse

Ich habe zwei Tabellen; tbl_property und tbl_prop Daten. Letztere hat Datenblätter, die sich auf die Eigenschaften beziehen, die in der anderen Tabelle sind ... Unten ist meine Frage und hoffentlich kann mir jemand sagen, was ich falsch mache!

<cfquery name="getInfoByStreet" datasource="#application.dsn#"> 
    SELECT 
     tbl_property.prp_street_name, 
     tbl_property.prp_street_suffix, 
     tbl_property.prp_street_number, 
     tbl_property.prp_street_direction, 
     tbl_prop_data.pd_cat, 
     tbl_prop_data.pd_ref, 
     tbl_prop_data.pd_action, 
     tbl_prop_data.pd_date, 
     tbl_prop_data.pd_pdfFile, 
     tbl_prop_data.pd_activity, 
     tbl_prop_data.prp_ID, 
     tbl_prop_data.pd_ID, 
     tbl_prop_data.company_ID, 
     tbl_prop_data.pd_status 

    FROM tbl_property 

     INNER JOIN tbl_prop_data ON tbl_property.prp_ID = tbl_prop_data.prp_ID 

     WHERE pd_active = 1 
     AND pd_date >= <cfqueryparam value="#begin#" cfsqltype="cf_sql_date"> 
     AND pd_date <= <cfqueryparam value="#end#" cfsqltype="cf_sql_date"> 
     <cfif activityS1 neq 0>AND pd_activity = '#activityS1#'</cfif> 
     <cfif referenceS1 neq 0>AND pd_ref = '#referenceS1#'</cfif> 
     <cfif actionS1 neq 0>AND pd_action = '#actionS1#'</cfif> 
     <cfif statusS1 neq 0>AND pd_status = '#statusS1#'</cfif> 
     AND pd_cat = '#form.cat#' 

     GROUP BY prp_street_name ASC 

</cfquery> 

Hier ist ein Screenshot der Ergebnisse Es ist mir zu geben - und auch das Display-Code. Was ich will, ist die Datensätze in einer Schleife, die eine Übereinstimmung unter den gruppierten Straßen ist ...

<cfoutput query="getInfoByStreet" group="prp_street_name"> 

     <table width="100%" border="0"> 
      <tr> 
      <th class="display">#prp_street_name# #prp_street_suffix#</th> 
      <th class="display">Date</th> 
      <th class="display">Reference</th> 
      <th class="display">Action</th> 
      <th class="display">PDF</th> 
      </tr> 
      <cfloop query="getInfoByStreet"> 
      <tr> 
      <td height="41">#prp_street_number# #prp_street_direction# #prp_street_name# #prp_street_suffix#</td> 
      <td>#DateFormat(pd_date, "mm/dd/yyyy")#</td> 
      <td><span class="smallBlack">#getActionNow.name#</span></td> 
      <td><span class="smallBlack">#getRefNow.name#</span></td> 
      <td>#pd_pdfFile#</td> 
      </tr> 
      </cfloop> 
     </table> 
     </cfoutput> 

Front-end display of my posted code

+0

nichts mit der Frage zu tun, aber sicher sein cfqueryparam auf * alle * der variablen Parameter zu verwenden, nicht nur einige von ihnen ;-) – Leigh

Antwort

0

Wenn die cfoutput eine Schleife durch eine Gruppe Abfrage verwenden würden Sie nur ein verschachteltes cfoutput Schleife verwenden durch die Gruppe.

<cfoutput query="getInfoByStreet" group="prp_street_name"> <table width="100%" border="0"> <tr> <th class="display">#prp_street_name# #prp_street_suffix#</th> <th class="display">Date</th> <th class="display">Reference</th> <th class="display">Action</th> <th class="display">PDF</th> </tr> <cfoutput> <tr> <td height="41">#prp_street_number# #prp_street_direction# #prp_street_name# #prp_street_suffix#</td> <td>#DateFormat(pd_date, "mm/dd/yyyy")#</td> <td><span class="smallBlack">#getActionNow.name#</span></td> <td><span class="smallBlack">#getRefNow.name#</span></td> <td>#pd_pdfFile#</td> </tr> </cfoutput> </table> </cfoutput>

+0

Hey, danke für die Antwort ... Ich habe gerade versuchte das und es gab mir die gleichen Ergebnisse. Könnte es aufgrund der Verwendung von "GROUP BY" in meiner SQL-Abfrage, sowie das CF-Gruppenattribut auf dem Display sein? –

+0

Interessanterweise ... wenn ich die GROUP BY-Zeile aus der SQL-Anweisung entferne, bekomme ich die Ergebnisse, die ich brauche. Nun, es wiederholt eine der Straßen (Aufzeichnungen), aber ich werde schauen, ob es falsch geschrieben oder etwas –

+1

@JonJ ist. - Ein gewöhnlicher Fehler mit gruppierten Ausgaben ist, dass die Abfrageergebnisse sortiert werden - ** in der gleichen Reihenfolge ** - wie die CFoutput-Gruppierung. Wenn die Ausgabe beispielsweise 'group =" prp_street_name "' verwendet, muss die cfquery die Ergebnisse nach der gleichen Spalte sortieren: '... ORDER BY prp_street_name' – Leigh