• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Initializing an array

Guest
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

I have an array that needs to be initialized 1096 times, I don't want to use a cfloop because I am looking for a better performance. So I use a query that brings all the records that have been initialized, the problem is if some of them hasn't been initialized and I use some conditionals as CFIF the application will throw an error because the specified position into the array doesn't exist yet.

Here's my code.

<cfquery name="lista_espacios" datasource="#Application.BD#">
SELECT ISNULL(id_espacio,0) as id_espacio, ruta, url, alt FROM ESPACIOS
ORDER BY id_espacio
</cfquery>
<cfloop query="lista_espacios">
<cfset lista[lista_espacios.id_espacio][1] = lista_espacios.id_espacio>
<cfset lista[lista_espacios.id_espacio][2] = lista_espacios.ruta>
<cfset lista[lista_espacios.id_espacio][3] = lista_espacios.url>
<cfset lista[lista_espacios.id_espacio][4] = lista_espacios.alt>
</cfloop>
<cfset cont=1>
<cfif #lista[cont][1]# EQ #cont# ><a href="#lista[cont][3]#" onclick="abrirURL(#lista[cont][1]#);" target="_blank"><img style="border:0px" width="13" height="13" src="#lista[cont][2]#" title="#lista[cont][4]#" alt="#lista[cont][4]#" />
</a>
<cfelse>
<img width="13" height="13" src="img/bad.jpg" />

</cfif>
<cfset cont = #cont#+1>

TOPICS
Getting started

Views

778

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

what kind of weird thing are you trying to do? why do you need that
array? care to explain a bit more?

did you know you can access query results with array notation? i.e.
queryname.columnname[rownumber] or queryname[columnname][rownumber]

also, your <cfif> statement(s) is not in any cfloop or cfoutput, as far
as i can see...



Azadi Saryev
Sabai-dee.com
http://www.sabai-dee.com/

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

Start with your database design. Is id_espacio part of the primary key for the espacios table?

Next, your query. Why are you pulling every single record?

Next, if your db supports it, you can probably use a case construct in your query to replace the loop and if/else logic afterwards. Then it would be a simple cfoutput, with no arrays to worry about.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

Ok, the thing is I need to access the database to pull out an image in case the image doesn't exist then it will put a default image.
But at the beginning there will be some Id_espacios that will be not created yet (Id_espacios will be the primary key),
Anyway the problem is when I go to the cfloop query... It will only loop the record set that was pull out of the database that's the main reason I am using an array so that way you can initialize your 1096 registries.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

If I understand your requirements you have a database that has some
records, but not necessarily all 1096 records at this time. You want to
pull out these records, but have a full set of 1096 records even if some
of them do not yet exist in the dataset.

There are database tricks that can be used to create a record set like
this. Hopefully somebody will chime in with the details. This would
greatly simplify your processing after that.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

quote:

Originally posted by: Newsgroup User
If I understand your requirements you have a database that has some
records, but not necessarily all 1096 records at this time. You want to
pull out these records, but have a full set of 1096 records even if some
of them do not yet exist in the dataset.

There are database tricks that can be used to create a record set like
this. Hopefully somebody will chime in with the details. This would
greatly simplify your processing after that.


There is not enough information to know what approach would be most appropriate.

What is the database type? Also, do the existing records have sequential values for idespacio, starting with 1?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

Thank you Dan,

I have fix this initializing all the records in the database and I am using a cfloop to pull out all the records, anyway I will always need to loop 1096 times. At least to compare weather the image exist or not.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Apr 04, 2008 Apr 04, 2008

Copy link to clipboard

Copied

LATEST
ayuso_15 wrote:
> Thank you Dan,
>
> I have fix this initializing all the records in the database and I am using a
> cfloop to pull out all the records, anyway I will always need to loop 1096
> times. At least to compare weather the image exist or not.
>


Well you can always use a for next loop.

<cfoutput>
<cfloop from="1" to="1096" index="i">
#i#<br/>
</cfloop>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation