Jump to content

Need some simple advice with PHP, I'm a total NOOB!


Kaylub

Recommended Posts

Hey all,

I've been programming with php for about 3 months now and am still out to lunch on a lot of it. I was hoping someone could help me clear up a problem I'm having with my script.

 

It's a simple script that takes a user selection from the previous page ($StarterPackGroup) and executes a list of randomized functions based on the users selection. (There are 4 races to choose from, here's the url to the page that provides the info for $StarterPackGroup for my script.

 

http://www.eardrumvalley.com/backdoor/MINI_TACTICS/Starter_Pack.php

 

Once the user has selected one of 4 races, it takes them to this php script and rolls for their first "pack". I currently only have the "aqua elves" responding, so click on them.

 

Now, I have the page setup so it generates random numbers, and I know the numbers ARE generating, because I see them with an echo command (you will too, they are at the top of the page). However, the problem I'm having, is trying to utilize these random generated numbers in my other functions. ie: I create $UncommonUnit[$i], $CommonUnit[$i], $RareUnit[$i] and $MonsterUnit in the NewStarterPackRoll function.... however, i can't seem to utilize them in my other functions. How do I pass this info to another function?

 

The echo returns the random numbers from $CommonUnit, $UncommonUnit, $RareUnit and $MonsterUnit just fine WITHIN the StarterPackRoll function, but not later on in the AquaElfStarterPack function. Anytime I try to echo the return value of these holders, I get a blank value... I also know the value isn't being passed between functions because none of my if statements are working either. All the units receive a default allocation (Trooper, Hero, Champion, Skel Sprite), if the randomized numbers were passing, these would be giving me other values as well.

 

Please help,

I'm convinced there's a simple answer, and I'm just an idiot when it comes to PHP.

Lend me a hand! :)

 

 

CODING INFO

-----------------

 

THE DATE ENTREE SCREEN - "http://www.eardrumvalley.com/backdoor/MINI_TACTICS/Starter_Pack.php"

 

(BE SURE TO PICK AQUA ELVES, THEY ARE THE ONLY RACE THAT SENDS VALUES)

This will bring you to the script page after you submit the selection:

 

THE SCRIPT CODE ON "Open_First_Pack.php" after the data is sent is as follows: (please browse to webpages to see results of code).

<?php

function RaceCheck($StarterPackGroup) {

if ($StarterPackGroup=="AquaElves") {

AquaElfStarterPack();

}

}

 

 

function NewStarterPackRoll() {

$i = 0;

while ($i < 9) { 

$i = $i + 1;

$CommonUnit[$i] = rand(1, 100);

echo "" . $CommonUnit[$i] . " ";

}

$i = 0;

while ($i < 4) { 

$i = $i + 1;

$UncommonUnit[$i] = rand(1, 100);

}

$i = 0;

while ($i < 2) { 

$i = $i + 1;

$RareUnit[$i] = rand(1, 100);

}

$MonsterUnit = rand(1, 100);

}

 

 

function AquaElfStarterPack() {

$i=0;

echo "<p><b>Commons:</b><br>";

while ($i < 9) {

$i=$i + 1;

if ($CommonUnit[$i] <= 20) { $OpenedCommon[$i] = "Trooper"; }

else if ($CommonUnit[$i] <= 40) { $OpenedCommon[$i] = "Bowman"; }

else if ($CommonUnit[$i] <= 65) { $OpenedCommon[$i] = "Sentinal"; }

else if ($CommonUnit[$i] <= 80) { $OpenedCommon[$i] = "Horseman"; }

else if ($CommonUnit[$i] <= 100) { $OpenedCommon[$i] = "Evoker"; }

echo "" . $CommonUnit[$i] . " ";

echo "" . $OpenedCommon[$i] . "<br>";

}

echo "</p><p><b>Uncommons:</b><br>";

$i=0;

while ($i < 4) {

$i=$i + 1;

if ($UncommonUnit[$i] <= 20) { $OpenedUncommon[$i] = "Hero"; }

else if ($UncommonUnit[$i] <= 40) { $OpenedUncommon[$i] = "Archer"; }

else if ($UncommonUnit[$i] <= 65) { $OpenedUncommon[$i] = "Courier"; }

else if ($UncommonUnit[$i] <= 85) { $OpenedUncommon[$i] = "Knight"; }

else if ($UncommonUnit[$i] <= 100) { $OpenedUncommon[$i] = "Conjurer"; }

echo "" . $UncommonUnit[$i] . " ";

echo "" . $OpenedUncommon[$i] . "<br>";

}

echo "</p><p><b>Rares:</b><br>";

$i=0;

while ($i < 2) {

$i=$i + 1;

if ($RareUnit[$i] <= 15) { $OpenedRare[$i] = "Champion"; }

else if ($RareUnit[$i] <= 35) { $OpenedRare[$i] = "Sharp Shooter"; }

else if ($RareUnit[$i] <= 55) { $OpenedRare[$i] = "Herald"; }

else if ($RareUnit[$i] <= 80) { $OpenedRare[$i] = "Eagle Knight"; }

else if ($RareUnit[$i] <= 100) { $OpenedRare[$i] = "Enchanter"; }

echo "" . $RareUnit[$i] . " ";

echo "" . $OpenedRare[$i] . "<br>";

}

echo "</p><p><b>Monster:</b><br>";

if ($MonsterUnit <= 25) { $OpenedMonster = "Skeleton Sprite"; }

else if ($MonsterUnit <= 45) { $OpenedMonster = "Tako"; }

else if ($MonsterUnit <= 75) { $OpenedMonster = "Coral Giant"; }

else if ($MonsterUnit <= 100) { $OpenedMonster = "Gryphon"; }

echo "" . $MonsterUnit . " ";

echo "" . $OpenedMonster . "</p>";

}

 

NewStarterPackRoll();

RaceCheck($_REQUEST['StarterPackGroup']);

?>

Link to comment
Share on other sites

REVISED CODE:

Works Now (for Commons only, but the formula is there for others. Will update others in 5-10mins)

 

<?php

// PHP FUNCTIONS

//

function RaceCheck($StarterPackGroup) {

if ($StarterPackGroup=="AquaElves") {

AquaElfStarterPack();

}

}

 

function AquaElfStarterPack() {

$i=0;

echo "<p><b>Commons:</b><br>";

while ($i < 9) {

$i=$i + 1;

if ($GLOBALS["CommonUnit"][$i] <= 20) { $OpenedCommon[$i] = "Trooper"; }

else if ($GLOBALS["CommonUnit"][$i] <= 40) { $OpenedCommon[$i] = "Bowman"; }

else if ($GLOBALS["CommonUnit"][$i] <= 65) { $OpenedCommon[$i] = "Sentinal"; }

else if ($GLOBALS["CommonUnit"][$i] <= 80) { $OpenedCommon[$i] = "Horseman"; }

else if ($GLOBALS["CommonUnit"][$i] <= 100) { $OpenedCommon[$i] = "Evoker"; }

echo "" . $GLOBALS["CommonUnit"][$i] . " ";

echo "" . $OpenedCommon[$i] . "<br>";

}

echo "</p><p><b>Uncommons:</b><br>";

$i=0;

while ($i < 4) {

$i=$i + 1;

if ($UncommonUnit[$i] <= 20) { $OpenedUncommon[$i] = "Hero"; }

else if ($UncommonUnit[$i] <= 40) { $OpenedUncommon[$i] = "Archer"; }

else if ($UncommonUnit[$i] <= 65) { $OpenedUncommon[$i] = "Courier"; }

else if ($UncommonUnit[$i] <= 85) { $OpenedUncommon[$i] = "Knight"; }

else if ($UncommonUnit[$i] <= 100) { $OpenedUncommon[$i] = "Conjurer"; }

echo "" . $UncommonUnit[$i] . " ";

echo "" . $OpenedUncommon[$i] . "<br>";

}

echo "</p><p><b>Rares:</b><br>";

$i=0;

while ($i < 2) {

$i=$i + 1;

if ($RareUnit[$i] <= 15) { $OpenedRare[$i] = "Champion"; }

else if ($RareUnit[$i] <= 35) { $OpenedRare[$i] = "Sharp Shooter"; }

else if ($RareUnit[$i] <= 55) { $OpenedRare[$i] = "Herald"; }

else if ($RareUnit[$i] <= 80) { $OpenedRare[$i] = "Eagle Knight"; }

else if ($RareUnit[$i] <= 100) { $OpenedRare[$i] = "Enchanter"; }

echo "" . $RareUnit[$i] . " ";

echo "" . $OpenedRare[$i] . "<br>";

}

echo "</p><p><b>Monster:</b><br>";

if ($MonsterUnit <= 25) { $OpenedMonster = "Skeleton Sprite"; }

else if ($MonsterUnit <= 45) { $OpenedMonster = "Tako"; }

else if ($MonsterUnit <= 75) { $OpenedMonster = "Coral Giant"; }

else if ($MonsterUnit <= 100) { $OpenedMonster = "Gryphon"; }

echo "" . $MonsterUnit . " ";

echo "" . $OpenedMonster . "</p>";

}

 

// GLOBAL PHP BODY

//

 

$i = 0;

while ($i < 9) {

$i = $i + 1;

$CommonUnit[$i] = rand(1, 100);

echo "" . $CommonUnit[$i] . " ";

}

$i = 0;

while ($i < 4) { 

$i = $i + 1;

$UncommonUnit[$i] = rand(1, 100);

}

$i = 0;

while ($i < 2) { 

$i = $i + 1;

$RareUnit[$i] = rand(1, 100);

}

$MonsterUnit = rand(1, 100);

RaceCheck($_REQUEST['StarterPackGroup']);

?>

Link to comment
Share on other sites

Do I need to be using 'return' here in some fashion?

I don't know much about it.

 

I would hope so, return's are the preferred way to get the result from how you process the data you supply to a function, you can echo, but realistically it's better and easier to follow if you use returns.

 

Rw

Link to comment
Share on other sites

The echo is being removed,

it's simply there for visual confirmation on the html side for now.

It doesn't actually pass any data for computer crunching.

 

It would seem globalizing things worked on this praticular script, and it also seems like a very easy answer to me. Why mess around with returns/data dumps?

 

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.