animus Posted July 13, 2006 Share Posted July 13, 2006 [b]PROBLEM:[/b]I am having trouble returning values from a function that dynamically creates/assigns variables based on database entries. The idea is to have just a page call to the database and have php make my page. However, each page will have a ton of links to other products and parts of the site. Therefore, I just want to have each page’s links/images/resources handled in the following way: <a title="<? echo $image_description_151; ?>" href="<? echo $image_url_151; ?>"><? echo $image_title_151; ?></a>I have got this to work when it is not encapsulated within a function.Any thoughts?[b]DB STRUCTURE:[/b][color=red]DB:[/color] Pages Table Links Table Images Table Resources Table Pages table houses 1 Primary Key page_id and the foreign keys for the other tablesLinks table houses link_title, link_description, link_url, active & page_id (foreign key)Images and resources tables are exact same structure as links (i.e. resoure_title, images_title)[color=red]PHP:[/color]1 php file 'dbhook.php' (login information for DB) 1 php to return values from DB[b]PHP SCRIPT:[/b]<?php $myPage=1;$myPageData = array("link","image","resource");$myPageData_length = count($myPageData);for($i=0;$i<=($myPageData_length-1);$i++){ getData($myPage,$myPageData[$i]); }function getData($page,$searchOn){### Function to retrive all page data from database ####/*Date: 07.13.06 Varible structure:VARIABLE_title_NUMBER, VARIABLE_description_NUMBER, VARIABLE_url_NUMBER where NUMBER is the link number on the page & VARIBLE is what section of database to look under, all three should be used on each link line[color=orange]example: <a title="<? echo $VARIABLE_description_NUMBER; ?>" href="<? echo $VARIABLE_url_NUMBER; ?>"><? echo $VARIBLE_title_NUMBER; ?></a>[/color]*///create a plural variable for the DB query$plural = $searchOn."s";//include my hook into the databaseinclude('dbhook.php');//connect to mySQLmysql_connect(localhost,$username,$password);//select the correct database@mysql_select_db($database) or die("I am sorry but I do not see the database you requested");//assign query variables$query="SELECT aagtest.$plural.".$searchOn."_title, aagtest.$plural.".$searchOn."_description, aagtest.$plural.".$searchOn."_url, aagtest.$plural.active FROM aagtest.pages LEFT JOIN aagtest.$plural ON aagtest.pages.page_id = aagtest.$plural.page_id WHERE aagtest.$plural.page_id =$page";//perform querys$result=mysql_query($query);$totalNumberOfFields=mysql_num_fields($result);$totalNumberOfFields=$totalNumberOfFields-1;//set arrays for processing returned results$myLinks=array();//determine row amounts$num=mysql_num_rows($result);#loop through returned results and dynamically create varibles#assign these varible names to dynamically created array values$linkNum=0;for($i=0;$i<=($num-1);$i++){for($z=0;$z<=($totalNumberOfFields-1);$z++){$myColumnHeading=mysql_field_name($result,$z);$myVar=$myColumnHeading."_".$linkNum;$info=@mysql_result($result,$linkNum,$myColumnHeading);$myLink=$myVar;$$myLink=$myLinks[$linkNum][$z]=$info;}$linkNum++;}mysql_close();}?> Quote Link to comment https://forums.phpfreaks.com/topic/14493-function-question-returning-values-from-dynamically-generatedassigned-variable/ Share on other sites More sharing options...
akitchin Posted July 13, 2006 Share Posted July 13, 2006 i didn't slog through all your code, but it sounds to me like you'd be better off using an array rather than ending your variables in _number. perhaps restructure your data as:[code]$image[NUMBER_here] = array( 'title' => "Image NUMBER's title", 'description' => "Image NUMBER's description", 'url' => "Image NUMBER's url");[/code]then you can simply pass through all of the $image array with a foreach and you'll have all your images displayed:[code]<?phpforeach ($image AS $sub_array){ echo '<a title="'.$sub_array['description'].'" href="'.$sub_array['url'].'">'.$sub_array['title'].'</a>';}?>[/code]simply build the array of info as such in each of your query's rows, assign it to a temporary array value, and make the array of image info arrays as the function's return value. Quote Link to comment https://forums.phpfreaks.com/topic/14493-function-question-returning-values-from-dynamically-generatedassigned-variable/#findComment-57468 Share on other sites More sharing options...
animus Posted July 13, 2006 Author Share Posted July 13, 2006 Thanks akitchin! I'm pretty new to scripting so I'm still getting my feet, your example certainly helps me out. I hadn't thought of setting up the array like that. Thanks so much for the help!best,thom Quote Link to comment https://forums.phpfreaks.com/topic/14493-function-question-returning-values-from-dynamically-generatedassigned-variable/#findComment-57521 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.