heraldic2 Posted December 18, 2011 Share Posted December 18, 2011 I have a MySQL query that works, as it displays the results I want in the database, however when I put that query into some php code it ignores the first row and I was wondering if someone could point out what I am doing wrong. This is for a fantasy football league. You choose your team name from a drop down list and hit submit. It is then supposed to produce a list of your choosen teams performance against all other active teams AND the results of the last game played. QUERY: <?php //the connection information is located in a function include_once('call function'); $con = mysql_connect($hostname, $username, $password) OR DIE ('Unable to connect to database! Please try again later.'); $db = mysql_select_db($dbname, $con); $thing = $_GET['thing']; $query = "select selected.teamname AS selected_team, selected_score.score AS selected_score, week.week, year, home_id, ". "target_score.score as target_score, target.teamname as targetname, week.ID ". "from owners as selected ". "JOIN game_scores AS selected_score ON selected.owner_id = selected_score.team_id ". "JOIN game_setup ON game_setup.game_id = selected_score.game_id ". "JOIN game_scores AS target_score ON target_score.game_id = game_setup.game_id AND target_score.team_id != ". "selected_score.team_id ". "JOIN owners AS target ON target.owner_id = target_score.team_id ". "JOIN week ON week.week = game_setup.week ". "WHERE selected.owner_id = $thing ". "and target.active = 1 ". "GROUP BY target.teamname, year, week.ID "; $result = mysql_query($query); $row = mysql_fetch_array($result); if (!$result) { die('Invalid query: ' . mysql_error()); } Now I know the query produces the correct results as I have run it many times in my database software and it always gives me all the rows. QUERY RESULTS WITH LIMIT TOP 6: selected_team|selected_score|week|year|home_id|target_score|targetname|ID Xanadu Dragons|397.4|Week 9|2010|12|394.7|America Enforcers|9 Xanadu Dragons|357.4|Round 1|2010|1|361.6|America Enforcers|22 Xanadu Dragons|416.6|Week 2|2011|12|369.8|America Enforcers|2 Xanadu Dragons|417.0|Week 5|2010|11|301.9|Battle Masters|5 Xanadu Dragons|360.8|Week 4|2011|11|459.1|Battle Masters|4 Xanadu Dragons|99.0|Week 1|2006|1|93.0|Camelot Fluffy Butts|1 So the problem must be when I put the query results into the php code below: $wins=0; $losses=0; $draws=0; $last_target = false; echo '<h3>' . $row['selected_team'] . '</h3>'; while ($row = mysql_fetch_assoc($result)) { if ($last_target['targetname'] != $row['targetname']) { if ($last_target) { printf(' <table class="style1" border="1" width="400"> <tr> <th>Opponent Name:</th> <th colspan="2">%s</th> </tr> <tr> <th>Wins</th> <th>Losses</th> <th>Draws</th> </tr> <tr> <td align="center">%d</td> <td align="center">%d</td> <td align="center">%d</td> </tr> <tr> <th>Last Game:</th> <td colspan="2">%s of %s: %.1f - %.1f</td> <tr> </table><br/>', $last_target['targetname'], $wins, $losses, $draws, $last_target['week'], $last_target['year'], $last_target['selected_score'], $last_target['target_score'] ); } $wins = $losses = $draws = 0; } if ($row['selected_score'] < $row['target_score']) ++$losses; elseif ($row['selected_score'] == $row['target_score']) ++$draws; else ++$wins; $last_target = $row; } if ($last_target) { } ?> The display however gives me the following: Opponent Name: America Enforcers Wins Losses Draws 1 1 0 Last Game: Week 2 of 2011: 416.6 - 369.8 as you can see from the above database results this team played the America Enforcers 3 times, however the php code only displays 2 games. All other match ups are correct, it is just this first row. Any ideas? Please and thank you for your time and effort. Link to comment https://forums.phpfreaks.com/topic/253426-php-loop/ Share on other sites More sharing options...
PFMaBiSmAd Posted December 18, 2011 Share Posted December 18, 2011 $row = mysql_fetch_array($result); ^^^ The above statement in your code is fetching and discarding the first row from the result set. Why do you have that line in your code? Link to comment https://forums.phpfreaks.com/topic/253426-php-loop/#findComment-1299023 Share on other sites More sharing options...
heraldic2 Posted December 18, 2011 Author Share Posted December 18, 2011 Thank you for your advice. With a bit of working I was able to take what you told me and fix the problem. It works great now. Thanks again Link to comment https://forums.phpfreaks.com/topic/253426-php-loop/#findComment-1299084 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.