triphis Posted May 5, 2007 Share Posted May 5, 2007 Hello everyone I am trying to figure out how to access the array returned from this function using the incremental approach ($i)... however $array[column][$i] doesn't seem to work... it just returns the first letter of that column's entry. I can't use the standard while($row = mysql_fetch_array($result)) for what I am doing: say that loop runs 6 times. I am filling a table with 10 cells always - pulling the remaining cells from a completely different query. Right now, my table is being constructed with only 6 cells SO I want to have a FOR loop, and then use that $i to get what I need from both queries. Anyway, all I am looking for is a description of the array returned, and how to access each column, and each row using increments. Thanks! Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/ Share on other sites More sharing options...
MadTechie Posted May 5, 2007 Share Posted May 5, 2007 can you do a <?php print_r($array); ?> and also show some code as we don't have much to work with Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246256 Share on other sites More sharing options...
triphis Posted May 5, 2007 Author Share Posted May 5, 2007 Of course, I apologize for giving barely any info lol. Array ( [0] => 1 [id] => 1 [1] => jeantest [productcode] => jeantest [2] => True Religion [brand] => True Religion [3] => Micky Big T [style] => Micky Big T [4] => Denim [category] => Denim [5] => Wild Bill [colour] => Wild Bill [6] => 200 [cost] => 200 [7] => 300 [retail] => 300 [8] => 250 [sale] => 250 [9] => 0 [green] => 0 ) Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246258 Share on other sites More sharing options...
MadTechie Posted May 5, 2007 Share Posted May 5, 2007 i don't seam to see the problem, why not use echo $array[$i] or a foreach (loop) Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246261 Share on other sites More sharing options...
triphis Posted May 5, 2007 Author Share Posted May 5, 2007 I guess I am having an understanding-block. I thought I could just ask one question and magically I would figure it all out haha. However, I now see that I need more help, so I will share my entire problem. Okay, so I am having a loop build the following table: The cyan cells are filled with content from the main loop, while the red cell is the "Feature Item" and pulled from a different query. The code for the table loop is: function showGrid($feature) { $featureresult = @mysql_query("SELECT * FROM matrix WHERE productcode = '$feature' LIMIT 1"); $featureItem = mysql_fetch_array($featureresult); $otherresult = @mysql_query("SELECT * FROM matrix WHERE productcode != '$feature' ORDER BY rand()"); $otherItems = mysql_fetch_array($otherresult); ?> <center> <table border="1"> <tr> <?php $upper=1; $int = 0; while($otherItems = mysql_fetch_array($otherresult)) /////// this is where the problem is!!! { if($upper==1) { if($int==2) { echo "<td rowspan='2' colspan='2' width='250' height='304' align='center'>" . $featureItem[brand] ."</td></tr><tr>"; $int++; } elseif($int==4) { echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td></tr>"; $upper=0; $int++; } else { echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td>"; $int++; } } else { if($int%4 == 1) { echo "<tr>"; } echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td>"; if($int%4 == 0) { echo "</tr>"; } } }?> </tr> </table> </center> <?php } //end function SHOWGRID Okay, so as you can see above, the table loop is BASED off the results from the OTHER (non-feature) items. However, if there are only 3 items on this page, 2 non-feature, 1 feature... the table will only create 2 cells (because it will never reach the third iteration of the loop). I would LIKE to convert that while statement to for($i=0; $i < $num; $i++) where $num = mysql_num_rows($otherresult) + 1; (to include the feature). So that is why I wanted to use the incremental approach for my array... Any better ideas? Thanks! Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246269 Share on other sites More sharing options...
MadTechie Posted May 5, 2007 Share Posted May 5, 2007 i still think i am missing something!! <?php //<---Added********************* //**************** function showGrid($feature) { $featureresult = @mysql_query("SELECT * FROM matrix WHERE productcode = '$feature' LIMIT 1"); $featureItem = mysql_fetch_array($featureresult); $otherresult = @mysql_query("SELECT * FROM matrix WHERE productcode != '$feature' ORDER BY rand()"); $otherItems = mysql_fetch_array($otherresult); ?> <center> <table border="1"> <tr> <?php $upper=1; $int = 0; //CHANGED BELOW********************* $num = mysql_num_rows($otherresult) + 1; //(to include the feature). for($i=0; $i < $num; $i++) //while($otherItems = mysql_fetch_array($otherresult)) /////// this is where the problem is!!! //CHANGED ABOVE********************* { $otherItems = mysql_fetch_array($otherresult); if($upper==1) { if($int==2) { echo "<td rowspan='2' colspan='2' width='250' height='304' align='center'>" . $featureItem[brand] ."</td></tr><tr>"; $int++; } elseif($int==4) { echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td></tr>"; $upper=0; $int++; } else { echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td>"; $int++; } } else { if($int%4 == 1) { echo "<tr>"; } echo "<td width='125' height='152' align='center'>" . $otherItems[brand] ."</td>"; if($int%4 == 0) { echo "</tr>"; } } }?> </tr> </table> </center> <?php } //end function SHOWGRID Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246332 Share on other sites More sharing options...
triphis Posted May 5, 2007 Author Share Posted May 5, 2007 That works just perfectly thank you! I guess what I learned here today is that everytime $otherItems = mysql_fetch_array($otherresult); is called, it advances to the next row, is that correct? I was thinking that no matter how many times you call that, it would fetch the exact same array that the original result came up with Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246344 Share on other sites More sharing options...
MadTechie Posted May 5, 2007 Share Posted May 5, 2007 your right, yeah when i started that logic caugth me, but you sql statement was used and your using a pointer to it but yep you got it now good luck and remember to click solved Link to comment https://forums.phpfreaks.com/topic/50151-solved-array-returned-from-mysql_fetch_array/#findComment-246347 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.