radar Posted October 17, 2006 Share Posted October 17, 2006 Okay it's been a while since i've posted as I havent needed much help -- but now on my site I absolutely need this array to be multi dimensional.. and I'll go into that in a bit..First off I am using Smarty as a templateing engine.. which in the actual html I sort through a multi dimensional array like this..[code]{section name=d loop=$data} <tr> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"> {$data[d].hl_date|date_format:"%m-%d-%Y"}</td> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"> {$data[d].hl_page}</td> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"> {$data[d].hl_memname}</td> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"> {$data[d].hl_adminname}</td> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"> {if $data[d].hl_referer eq ''}directly requested{else}{$data[d].hl_referer}{/if} </td> <td class="bodytextSmallBlue" bgcolor="#FFFFFF"><a href="?action=logs&act=delete&id={$data[d].hl_id}"><img src="../templates/cesite/images/b_drop.gif" width="16" height="16" border="0"></a></td> </tr> {/section}[/code]It's all done with the section now only problem is the array passed to it MUST be a multi dimensional array.. When I print_r my array here is the output..[code]Data:Array( [hl_id] => 1 [hl_date] => 34234234234 [hl_page] => hacklogs [hl_memname] => Radar [hl_adminname] => Radar [hl_browser] => IE Exploder [hl_ip] => 172.0.0.1 [hl_referer] => )[/code]And here is how I would like it to be... and this has to be dynamic creation because today there might be two entries and tomorrow there might be 1000.....[code]Data: Array ([0] = array ( [hl_id] => 1 [hl_date] => 34234234234 [hl_page] => hacklogs [hl_memname] => Radar [hl_adminname] => Radar [hl_browser] => IE Exploder [hl_ip] => 172.0.0.1 [hl_referer] => }[1] = array ( [hl_id] => 1 [hl_date] => 34234234234 [hl_page] => hacklogs [hl_memname] => Radar [hl_adminname] => Radar [hl_browser] => IE Exploder [hl_ip] => 172.0.0.1 [hl_referer] => ))}[/code]Here is my code I've got for this case in my index.php file...[code]<?phpcase logs: $data1 = mysql_result(mysql_query("SELECT count(*) FROM logs"), 0); $turbo->assign('hl_cnt', $data1); echo $data1; $data = mysql_query("SELECT * FROM logs"); $data = mysql_fetch_assoc($data); $turbo->assign('data', $data); $page = "logs"; break;?>[/code]I just created a function to kinda help set the way for you guys helping me.. it sorta works but only loops does it over 1 instance... i have 2 in the system right now both different...[code]<?phpfunction assign_md_array($array, $cnt, $result) { for ($row = 0; $row < $cnt; $row++) { foreach ($array as $key => $value) { $data[$row][$key] = $value; } } $this->assign($result, $data); echo "<pre> function array:"; print_r ($data); echo "</pre>"; }?>[/code]and here is the output of this..[code] function array:Array( [0] => Array ( [hl_id] => 1 [hl_date] => 34234234234 [hl_page] => hacklogs [hl_memname] => Radar [hl_adminname] => Radar [hl_browser] => IE Exploder [hl_ip] => 172.0.0.1 [hl_referer] => ) [1] => Array ( [hl_id] => 1 [hl_date] => 34234234234 [hl_page] => hacklogs [hl_memname] => Radar [hl_adminname] => Radar [hl_browser] => IE Exploder [hl_ip] => 172.0.0.1 [hl_referer] => ))[/code]any help on this would be appreciated.. thanks... Link to comment https://forums.phpfreaks.com/topic/24184-arrays-multidimensional/ Share on other sites More sharing options...
radar Posted October 17, 2006 Author Share Posted October 17, 2006 Okay so I've done some testing and I finally got this to work correctly.. so for anyone else having issues with arrays being turned into multidimensional arrays... read this...Here is the new function:[code]<?phpfunction assign_md_array($query, $cnt, $result) {for ( $row = 0; $row < $cnt && $array = mysql_fetch_assoc($query); $row++ ) { foreach ($array as $key => $value) { $data[$row][$key] = $value; } }// change this to whatever you need such as return $data; $this->assign($result, $data); }?>[/code]Then here is the syntax for calling this function..[code]<?php// lets get the count of how many are in the database... $data1 = mysql_result(mysql_query("SELECT count(*) FROM logs"), 0); $turbo->assign('hl_cnt', $data1); // could delete this if you're not using smarty// now we setup the query and run it that far only.. $data = mysql_query("SELECT * FROM logs");// $data = the query string, $data = the count and 'data' could be deleted if you're not using the assign function in smarty... $turbo->assign_md_array($data, $data1, 'data'); // i put the function in my class file.?>[/code] Link to comment https://forums.phpfreaks.com/topic/24184-arrays-multidimensional/#findComment-109982 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.