twilitegxa Posted August 18, 2009 Share Posted August 18, 2009 I have the following if statement, but it's not displaying anything. What am I doing wrong? I have another if statement just like it working perfectly. What am I missing? $get_sub_attributes = "select * from scout_sub_attributes where identity = '$identity'"; $get_sub_attributes_res = mysql_query($get_sub_attributes, $conn) or die(mysql_error()); while ($sub_attributes_info = mysql_fetch_array($get_sub_attributes_res)) { $sub_attributes_id = $sub_attributes_info['id']; $sub_attributes_identity = $sub_attributes_info['identity']; $sub_attributes_attribute_id = $sub_attributes_info['sub_attribute_id']; $sub_attributes_level_id = $sub_attributes_info['level_id']; $get_sub_attribute_names = "select * from sub_attributes where id = '$sub_attributes_attribute_id'"; $get_sub_attribute_names_res = mysql_query($get_sub_attribute_names, $conn) or die(mysql_error()); while ($sub_attribute_names_info = mysql_fetch_array($get_sub_attribute_names_res)) { $sub_attribute_names_id = $sub_attribute_names_info['id']; $sub_attribute_names_attribute = $sub_attribute_names_info['sub_attribute']; $sub_attribute_names_points = $sub_attribute_names_info['points']; $sub_attributes_points = ($sub_attribute_names_points * $sub_attributes_level_id); $display_block .= " <tr> <td class=indent>$sub_attribute_names_attribute</td> <td class=align_levels>$sub_attributes_level_id</td> <td class=align_levels>$sub_attributes_points</td> </tr>"; } } //gather attacks $get_attacks = "select * from attacks where identity = '$identity' order by level desc"; $get_attacks_res = mysql_query($get_attacks, $conn) or die(mysql_error()); while ($attacks_info = mysql_fetch_array($get_attacks_res)) { $attack_id = $attacks_info['id']; $attack_identity = $attacks_info['identity']; $attack = $attacks_info['attack']; $primary = $attacks_info['primary_attack']; $secondary = $attacks_info['secondary_attack']; $attack_level = $attacks_info['level']; $attack_points = ($sub_attribute_names_points * $attack_level); //checks for primary and secondary attacks if($secondary == 1) $attack_points = 2; elseif($primary == 0 && $secondary == 0) $attack_points = 1; if ($sub_attribute_names_attribute == 'Sailor Scout Attack') { $display_block .= " <tr> <td class=indent2>- $attack</td> <td class=align_levels>$attack_level</td> <td class=align_levels>$attack_points</td> </tr> <tr>"; } } //gather items of power $get_items = "select * from items where identity = '$identity'"; $get_items_res = mysql_query($get_items, $conn) or die(mysql_error()); while ($items_info = mysql_fetch_array($get_items_res)) { $items_id = $items_info['id']; $items_identity = $items_info['identity']; $item = $items_info['item']; $item_level = $items_info['level']; $item_points = ($sub_attribute_names_points * $item_level); if ($sub_attribute_names_attribute == 'Item Of Power') { $display_block .= " <tr> <td class=indent2>- $item</td> <td class=align_levels>$item_level</td> <td class=align_levels>$item_points</td> </tr>"; } } [/code The part that isn't working right is the if statement at the end, for the items table (where is says, gather the items of power). What am I doing wrong? Quote Link to comment https://forums.phpfreaks.com/topic/170898-solved-if-statement-not-working/ Share on other sites More sharing options...
MadTechie Posted August 18, 2009 Share Posted August 18, 2009 Maybe try using echo to echo the value of $sub_attribute_names_attribute of course this assumes your queries are okay and $identity is being set.. to help out I cleaned up the formatting a little <?php $get_sub_attributes = "select * from scout_sub_attributes where identity = '$identity'"; $get_sub_attributes_res = mysql_query ( $get_sub_attributes, $conn ) or die ( mysql_error () ); while ( $sub_attributes_info = mysql_fetch_array ( $get_sub_attributes_res ) ) { $sub_attributes_id = $sub_attributes_info ['id']; $sub_attributes_identity = $sub_attributes_info ['identity']; $sub_attributes_attribute_id = $sub_attributes_info ['sub_attribute_id']; $sub_attributes_level_id = $sub_attributes_info ['level_id']; $get_sub_attribute_names = "select * from sub_attributes where id = '$sub_attributes_attribute_id'"; $get_sub_attribute_names_res = mysql_query ( $get_sub_attribute_names, $conn ) or die ( mysql_error () ); while ( $sub_attribute_names_info = mysql_fetch_array ( $get_sub_attribute_names_res ) ) { $sub_attribute_names_id = $sub_attribute_names_info ['id']; $sub_attribute_names_attribute = $sub_attribute_names_info ['sub_attribute']; $sub_attribute_names_points = $sub_attribute_names_info ['points']; $sub_attributes_points = ($sub_attribute_names_points * $sub_attributes_level_id); $display_block .= " <tr> <td class=indent>$sub_attribute_names_attribute</td> <td class=align_levels>$sub_attributes_level_id</td> <td class=align_levels>$sub_attributes_points</td> </tr>"; } } //gather attacks $get_attacks = "select * from attacks where identity = '$identity' order by level desc"; $get_attacks_res = mysql_query ( $get_attacks, $conn ) or die ( mysql_error () ); while ( $attacks_info = mysql_fetch_array ( $get_attacks_res ) ) { $attack_id = $attacks_info ['id']; $attack_identity = $attacks_info ['identity']; $attack = $attacks_info ['attack']; $primary = $attacks_info ['primary_attack']; $secondary = $attacks_info ['secondary_attack']; $attack_level = $attacks_info ['level']; $attack_points = ($sub_attribute_names_points * $attack_level); //checks for primary and secondary attacks if ($secondary == 1) $attack_points = 2; elseif ($primary == 0 && $secondary == 0) $attack_points = 1; if ($sub_attribute_names_attribute == 'Sailor Scout Attack') { $display_block .= " <tr> <td class=indent2>- $attack</td> <td class=align_levels>$attack_level</td> <td class=align_levels>$attack_points</td> </tr> <tr>"; } } //gather items of power $get_items = "select * from items where identity = '$identity'"; $get_items_res = mysql_query ( $get_items, $conn ) or die ( mysql_error () ); while ( $items_info = mysql_fetch_array ( $get_items_res ) ) { $items_id = $items_info ['id']; $items_identity = $items_info ['identity']; $item = $items_info ['item']; $item_level = $items_info ['level']; $item_points = ($sub_attribute_names_points * $item_level); if ($sub_attribute_names_attribute == 'Item Of Power') { $display_block .= " <tr> <td class=indent2>- $item</td> <td class=align_levels>$item_level</td> <td class=align_levels>$item_points</td> </tr>"; } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/170898-solved-if-statement-not-working/#findComment-901380 Share on other sites More sharing options...
twilitegxa Posted August 18, 2009 Author Share Posted August 18, 2009 Echo it where? It is listing all of the records in the sub_attributes_names table and the previous if statement lists the attacks if the sub_attribute_name equals "Sailor Scout Attack" so I can't see why it won't pull the items if the sub_attribute_name equals "Item Of Power". Have I typed something wrong that anyone can see? Quote Link to comment https://forums.phpfreaks.com/topic/170898-solved-if-statement-not-working/#findComment-901384 Share on other sites More sharing options...
twilitegxa Posted August 23, 2009 Author Share Posted August 23, 2009 I tried moving the items above the attacks statement, and then commentign out the if statement to see what was printing and how it was printing, and all of the items get listed like I want them to, except theya re getting listed with the attacks, under the Sailor Scout Attack. Here is the code: $get_sub_attributes = "select * from scout_sub_attributes where identity = '$identity'"; $get_sub_attributes_res = mysql_query($get_sub_attributes, $conn) or die(mysql_error()); while ($sub_attributes_info = mysql_fetch_array($get_sub_attributes_res)) { $sub_attributes_id = $sub_attributes_info['id']; $sub_attributes_identity = $sub_attributes_info['identity']; $sub_attributes_attribute_id = $sub_attributes_info['sub_attribute_id']; $sub_attributes_level_id = $sub_attributes_info['level_id']; $sub_attributes_notes = $sub_attributes_info['notes']; $get_sub_attribute_names = "select * from sub_attributes where id = '$sub_attributes_attribute_id'"; $get_sub_attribute_names_res = mysql_query($get_sub_attribute_names, $conn) or die(mysql_error()); while ($sub_attribute_names_info = mysql_fetch_array($get_sub_attribute_names_res)) { $sub_attribute_names_id = $sub_attribute_names_info['id']; $sub_attribute_names_attribute = $sub_attribute_names_info['sub_attribute']; $sub_attribute_names_points = $sub_attribute_names_info['points']; $sub_attributes_points = ($sub_attribute_names_points * $sub_attributes_level_id); $display_block .= " <tr> <td class=indent>$sub_attribute_names_attribute</td> <td class=align_levels>$sub_attributes_level_id</td> <td class=align_levels>$sub_attributes_points</td> </tr>"; } } //gather items of power $get_items = "select * from items where identity = '$identity'"; $get_items_res = mysql_query($get_items, $conn) or die(mysql_error()); while ($items_info = mysql_fetch_array($get_items_res)) { $items_id = $items_info['id']; $items_identity = $items_info['identity']; $item = $items_info['item']; $item_desc = $items_info['desc']; $item_level = $items_info['level']; $item_points = ($sub_attribute_names_points * $item_level); //if ($sub_attribute_names_attribute == 'Item Of Power') { $display_block .= " <tr> <td class=indent2>- $item</td> <td class=align_levels>$item_level</td> <td class=align_levels>$item_points</td> </tr> <tr>"; } //} //gather attacks $get_attacks = "select * from attacks where identity = '$identity' order by level desc"; $get_attacks_res = mysql_query($get_attacks, $conn) or die(mysql_error()); while ($attacks_info = mysql_fetch_array($get_attacks_res)) { $attack_id = $attacks_info['id']; $attack_identity = $attacks_info['identity']; $attack = $attacks_info['attack']; $primary = $attacks_info['primary_attack']; $secondary = $attacks_info['secondary_attack']; $attack_level = $attacks_info['level']; $attack_points = ($sub_attribute_names_points * $attack_level); //checks for primary and secondary attacks if($secondary == 1) $attack_points = 2; elseif($primary == 0 && $secondary == 0) $attack_points = 1; if ($sub_attribute_names_attribute == 'Sailor Scout Attack') { $display_block .= " <tr> <td class=indent2>- $attack</td> <td class=align_levels>$attack_level</td> <td class=align_levels>$attack_points</td> </tr> <tr>"; } } How can I fix my if statement to make it print out the items under the Item Of Power? Quote Link to comment https://forums.phpfreaks.com/topic/170898-solved-if-statement-not-working/#findComment-904262 Share on other sites More sharing options...
twilitegxa Posted August 23, 2009 Author Share Posted August 23, 2009 I figured it out! I moved the items statement to be inside of the sub_attributes loop, and now it works. Here is the code: $get_sub_attributes = "select * from scout_sub_attributes where identity = '$identity'"; $get_sub_attributes_res = mysql_query($get_sub_attributes, $conn) or die(mysql_error()); while ($sub_attributes_info = mysql_fetch_array($get_sub_attributes_res)) { $sub_attributes_id = $sub_attributes_info['id']; $sub_attributes_identity = $sub_attributes_info['identity']; $sub_attributes_attribute_id = $sub_attributes_info['sub_attribute_id']; $sub_attributes_level_id = $sub_attributes_info['level_id']; $sub_attributes_notes = $sub_attributes_info['notes']; $get_sub_attribute_names = "select * from sub_attributes where id = '$sub_attributes_attribute_id'"; $get_sub_attribute_names_res = mysql_query($get_sub_attribute_names, $conn) or die(mysql_error()); while ($sub_attribute_names_info = mysql_fetch_array($get_sub_attribute_names_res)) { $sub_attribute_names_id = $sub_attribute_names_info['id']; $sub_attribute_names_attribute = $sub_attribute_names_info['sub_attribute']; $sub_attribute_names_points = $sub_attribute_names_info['points']; $sub_attributes_points = ($sub_attribute_names_points * $sub_attributes_level_id); $display_block .= " <tr> <td class=indent>$sub_attribute_names_attribute</td> <td class=align_levels>$sub_attributes_level_id</td> <td class=align_levels>$sub_attributes_points</td> </tr>"; //gather attacks $get_items = "select * from items where identity = '$identity' order by level asc"; $get_items_res = mysql_query($get_items, $conn) or die(mysql_error()); while ($items_info = mysql_fetch_array($get_items_res)) { $item_id = $items_info['id']; $item_identity = $items_info['identity']; $items = $items_info['item']; $item_desc = $items_info['desc']; $item_level = $items_info['level']; $item_points = ($sub_attribute_names_points * $item_level); if ($sub_attribute_names_attribute == 'Item Of Power') { $display_block .= " <tr> <td class=indent2>- $items</td> <td class=align_levels>$item_level</td> <td class=align_levels>$item_points</td> </tr> <tr>"; } } } } //gather attacks $get_attacks = "select * from attacks where identity = '$identity' order by level desc"; $get_attacks_res = mysql_query($get_attacks, $conn) or die(mysql_error()); while ($attacks_info = mysql_fetch_array($get_attacks_res)) { $attack_id = $attacks_info['id']; $attack_identity = $attacks_info['identity']; $attack = $attacks_info['attack']; $primary = $attacks_info['primary_attack']; $secondary = $attacks_info['secondary_attack']; $attack_level = $attacks_info['level']; $attack_points = ($sub_attribute_names_points * $attack_level); //checks for primary and secondary attacks if($secondary == 1) $attack_points = 2; elseif($primary == 0 && $secondary == 0) $attack_points = 1; if ($sub_attribute_names_attribute == 'Sailor Scout Attack') { $display_block .= " <tr> <td class=indent2>- $attack</td> <td class=align_levels>$attack_level</td> <td class=align_levels>$attack_points</td> </tr> <tr>"; } } Thanks for all the help everyone! Quote Link to comment https://forums.phpfreaks.com/topic/170898-solved-if-statement-not-working/#findComment-904270 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.