Jump to content

Returning a different varable for every stage in a loop


ldb358

Recommended Posts

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;
}
}

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;
}

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.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.