ldb358 Posted June 11, 2009 Share Posted June 11, 2009 The problem is that i need to return a varable to create a button for every image in a loop but right now it only loads the first button heres my code: function userPage(){ $username = $_SESSION['username']; $qFirst = mysql_query("SELECT firstName FROM users WHERE username='$username'"); $qLast = mysql_query("SELECT lastName FROM users WHERE username='$username'"); $qEmail = mysql_query("SELECT email FROM users WHERE username='$username'"); $firstb = mysql_fetch_array($qFirst); $first = $firstb['firstName']; $lastb = mysql_fetch_array($qLast); $last = $lastb['lastName']; $emailb = mysql_fetch_array($qEmail); $email = $emailb['email']; $qgetImagesrc = mysql_query("SELECT * FROM ".$username." WHERE id='1'") or die(mysql_error()); $qImagesrc = mysql_fetch_array($qgetImagesrc); //working on designing the page here echo "<div class='body3'><div style='width:800px; height:20px;'></div><div class='pictureFill'><img src='". $username . "/" . $qImagesrc['name'] ."' style='width:100; height:150;'/></div><div class='userInfo'><blockquote><h3>$username</h3><p>$first $last<br/>$email<h4>$rating</h4></p></blockquote></div><br/><div class='pictureSelect' id='picSelect'>".loadImages($username)."</div><div class='pictureGallery'><img name='mainImage' /></div></div>"; //add an if(isset(img1) else load upload first page } function loadImages($username){ $numberOfImages = mysql_query("SELECT imgNumber FROM users WHERE username='$username'"); $numImages2 = mysql_fetch_array($numberOfImages); $numImages = (int)$numImages2['imgNumber']; for( $i=1; $i<=$numImages; $i++){ $getName = mysql_query("SELECT name FROM ".$username." WHERE id='$i'"); $loadName = mysql_fetch_array($getName); $name = $loadName['name']; $output = "<input type='button' value='$name' onClick=\"mainImage.src='" . $username . "/" . $name . "' \"/><br/>"; return $output; } } would it be something like this function userPage(){ $username = $_SESSION['username']; $qFirst = mysql_query("SELECT firstName FROM users WHERE username='$username'"); $qLast = mysql_query("SELECT lastName FROM users WHERE username='$username'"); $qEmail = mysql_query("SELECT email FROM users WHERE username='$username'"); $firstb = mysql_fetch_array($qFirst); $first = $firstb['firstName']; $lastb = mysql_fetch_array($qLast); $last = $lastb['lastName']; $emailb = mysql_fetch_array($qEmail); $email = $emailb['email']; $qgetImagesrc = mysql_query("SELECT * FROM ".$username." WHERE id='1'") or die(mysql_error()); $qImagesrc = mysql_fetch_array($qgetImagesrc); //working on designing the page here echo "<div class='body3'><div style='width:800px; height:20px;'></div><div class='pictureFill'><img src='". $username . "/" . $qImagesrc['name'] ."' style='width:100; height:150;'/></div><div class='userInfo'><blockquote><h3>$username</h3><p>$first $last<br/>$email<h4>$rating</h4></p></blockquote></div><br/><div class='pictureSelect' id='picSelect'>".loadImages($username)."</div><div class='pictureGallery'><img name='mainImage' /></div></div>"; //add an if(isset(img1) else load upload first page } function loadImages($username){ $numberOfImages = mysql_query("SELECT imgNumber FROM users WHERE username='$username'"); $numImages2 = mysql_fetch_array($numberOfImages); $numImages = (int)$numImages2['imgNumber']; for( $i=1; $i<=$numImages; $i++){ $getName = mysql_query("SELECT name FROM ".$username." WHERE id='$i'"); $loadName = mysql_fetch_array($getName); $name = $loadName['name']; $output$i = "<input type='button' value='$name' onClick=\"mainImage.src='" . $username . "/" . $name . "' \"/><br/>"; return $output$i; } } Link to comment https://forums.phpfreaks.com/topic/161837-returning-a-different-varable-for-every-stage-in-a-loop/ Share on other sites More sharing options...
thebadbad Posted June 11, 2009 Share Posted June 11, 2009 Not exactly, you'll need to concatenate every image string onto the string $output, and return the string outside the loop: function loadImages($username){ $numberOfImages = mysql_query("SELECT imgNumber FROM users WHERE username='$username'"); $numImages2 = mysql_fetch_array($numberOfImages); $numImages = (int)$numImages2['imgNumber']; $output = ''; for( $i=1; $i<=$numImages; $i++){ $getName = mysql_query("SELECT name FROM ".$username." WHERE id='$i'"); $loadName = mysql_fetch_array($getName); $name = $loadName['name']; $output .= "<input type='button' value='$name' onClick=\"mainImage.src='" . $username . "/" . $name . "' \"/><br/>"; } return $output; } Link to comment https://forums.phpfreaks.com/topic/161837-returning-a-different-varable-for-every-stage-in-a-loop/#findComment-853870 Share on other sites More sharing options...
roopurt18 Posted June 11, 2009 Share Posted June 11, 2009 Just to expand: $output$i = "<input type='button' value='$name' onClick=\"mainImage.src='" . $username . "/" . $name . "' \"/><br/>"; return $output$i; Surely that gives you syntax errors. You can't have code like $output$i and expect it to work. Secondly, return immediately ceases execution for the current function and returns control back to the code that called the function. So if you want to return a bunch of things from a function, combine them into an array or an instance of stdClass() and return that. Some things to remember: 1) A function can have any number of return statements 2) It's considered good practice (by some) to limit your functions to a single return statements 3) Regardless of how many return statements you have, once your function reaches one, it's done 4) You can only return a single value from a function, but that single value can be a single collection of items, like an array. Link to comment https://forums.phpfreaks.com/topic/161837-returning-a-different-varable-for-every-stage-in-a-loop/#findComment-853879 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.