I have a query and a loop written that lists all the rows from a mysql table (“records”) formatted in a HTML table.
One of the fields is “subject_id” which is an integer. I also have a table named “subjects” which corresponds to the same “subject_id” in the records table. Only two fields are in the “subjects” table, is an auto-index ID integer and a varchar(1024) for the subject title.
The value that returns from the “records” table is an integer. I want to perform a lookup on the integer from the “records” table for each row to output the text equivalent from the “subject_id” field.
My first notion, the kindergarten way, would be to throw in another query within the loop, effectively increasing my number of queries from 300 to 600 to load the page (no pagination is needed).
What would be a better way of this “sub query” aside from adding 300 more queries?
Edit:
I’m pulling the data from the table using a while loop and echoing my variable $r_subject (from: $r_subject = mysql_result($result,$a,”subject”);). The value returned from the initial records table is INT. I want to take the $r_subject and then check it against the SUBJECTS table to get the string name associated with that INT id.
It’s hard to know exactly what you need without seeing code, but from what I gather, you have 2 tables, one has the ID, the other has the text, so you would want to use a join.
The second thing is, you’ll want to look at whether or not you really need 300 queries in the first place. That’s a lot of queries to run and you should only need to run that many queries when you’re running a bulk insert/update or something of that nature; other than that, you most likely could reduce that number substantially.