[nycphp-talk] Making an array from a list item?
Adam Helfgott
adam at ecamp.net
Tue May 31 13:27:54 EDT 2005
not exactly clear what you want your array to look like at the end,
but using the following style should let u have better control over
the keys and values of your array - but again your email wasnt too
clear on what end you are trying to achieve
while (list($key,$value) = each($hntr)) {
$skill_knack_query = "select knackID from
characters.skill_knacks where skillID='".$v."'";
$skill_knack_result = mysql_query("$skill_knack_query",
$link_id);
..
}
On May 31, 2005, at 12:48 PM, leam at reuel.net wrote:
> Trying to read code from last year. *sigh* At least it isn't as
> difficult as perl...
>
> Looking through the archives I don't think I've asked this before.
> If there is a better way, and I'd not be surprised, feel free to
> suggest it. ;)
>
> My project is a character sheet for a game. Each character has a
> different set of skills, and each skill has a sub-skill called a
> "knack". A character can have a rank of 0-5 in a knack. "0" means
> they don't have that knack. Skills are not ranked; you just have it
> or not. For example, a character might have the Skill "Hunter" and
> have the knacks "Fishing (2)", "Stealth (2)", and "Tracking (1)". A
> character may or may not have all the knacks in a skill. Some
> knacks are in more than one skill.
>
> Each Skill and Knack has a unique short name like "hntr", "fshng",
> and "stlth". I've been using the short name as array keys. The
> character sheet pulls the list of skills that character has and
> then looks up what knacks are in that skill. It then writes the
> Skill header, lists each knack and the rank the character has in
> that knack.
>
> The current problem is that I'm using an included file that
> manually sets the array $htnr to have the knacks "fshg", "stlth",
> etc. I'd rather, if possible, have the array built from a database
> pull. I'm failing because I don't know how to iterate through a
> list and make the list item an array, and then populate the array
> with the knacks.
>
> Line from the included file:
>
> $hntr = array( "ambsh", "anmltn", "fshg", "sknng", "stlth", "srvl",
> "trkng", "trlsgns", "trps" );
>
>
> So far the code looks like this:
>
>
> foreach ( $skills As $s ) {
> $a = $s;
> $s = array ();
> $$s[0] = $a;
> echo "<p>s[0] is $s[0]! ";
> $skill_knack_query = "select knackID from
> characters.skill_knacks where skillID='$a'";
> $skill_knack_result = mysql_query("$skill_knack_query",
> $link_id);
> // echo "skill_knack_result is $skill_knack_result \n";
> while($skill_knack_data = mysql_fetch_array
> ($skill_knack_result)) {
> // echo "hello $skill_knack_data";
> echo " <p> hello $skill_knack_data[knackID]";
> array_push($s , $skill_knack_data["$knackID"] );
> }
> echo " <p> s[0] is $s[0] ";
> }
>
> If I comment out the included file and try the above code it gives
> output like this:
>
> s[0] is !
> hello ambsh hello anmltn hello fshg hello sknng hello stlth hello
> srvl hello trkng hello trlsgns hello trps
> s[0] is
>
> So the "echo $skill_knack_data[knackID]" line shows the short name
> is being gotten, I've just not gotten it onto the array. If I
> change the bottom "s[0] is $s[0] to higher number it still shows
> nothing in the array.
>
> It seems easiest to build the array to match the included file, but
> there may be a better, easier way.
>
> Thoughts? Suggestions? Crude comments?
>
> ciao!
>
> leam
>
>
> _______________________________________________
> New York PHP Talk Mailing List
> AMP Technology
> Supporting Apache, MySQL and PHP
> http://lists.nyphp.org/mailman/listinfo/talk
> http://www.nyphp.org
>
More information about the talk
mailing list