morocco-iceberg Posted July 14, 2010 Share Posted July 14, 2010 I've been able to fix everything that causes errors from the code... anything that reports an error anyway, but my code still won't work. The first section is a function to mark the user input and see if they have selected the correct words in the correct order. This code is located on the page following the page on which the function sent() outputs the questions the user is required to answer. I don't receive any error messages, but it does not add up the score, which is what I need it to do. I'm really lost with this. Function that marks the user input: function mark($table){ $counter = 0; while ($counter<2){ $id = $_POST[$table."_q".$counter]; $names = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t"); foreach($names as $identifier => $letter){ $sql = mysql_query("SELECT * FROM $table WHERE id = '{$id}'") or die($error); while($row = mysql_fetch_array($sql)){ $$letter = $row["$letter"]; } if (isset($_POST[$table.'_a'.$counter.'_0'])){ ${'a'.$letter} = mysql_real_escape_string($_POST[$table.'_a'.$counter.'_0']); }else{ ${'a'.$letter} = "Undefined"; } ${'c'.$letter} = strcmp(${'a'.$letter}, $$letter); } if($ca == 0 && $cb == 0 && $cc == 0 && $cd == 0 && $ce == 0 && $cf == 0 && $cg == 0 && $ch == 0 && $ci == 0 && $cj == 0 && $ck == 0 && $cl == 0 && $cm == 0 && $cn == 0 && $co == 0 && $cp == 0 && $cq == 0 && $cr == 0 && $cs == 0 && $ct == 0){ global $score; $score++; }else{ global $score; $score = $score; } $counter++; } } Function that outputs the dropdown boxes for the user input: function sent($table){ $sql = mysql_query("SELECT * FROM $table ORDER BY RAND()") or die($error); $counter = 0; while($row = mysql_fetch_array($sql)){ $id[$counter] = $row["id"]; $a[$counter] = $row["a"]; $b[$counter] = $row["b"]; $c[$counter] = $row["c"]; $d[$counter] = $row["d"]; $e[$counter] = $row["e"]; $f[$counter] = $row["f"]; $g[$counter] = $row["g"]; $h[$counter] = $row["h"]; $i[$counter] = $row["i"]; $j[$counter] = $row["j"]; $k[$counter] = $row["k"]; $l[$counter] = $row["l"]; $m[$counter] = $row["m"]; $n[$counter] = $row["n"]; $o[$counter] = $row["o"]; $p[$counter] = $row["p"]; $q[$counter] = $row["q"]; $r[$counter] = $row["r"]; $s[$counter] = $row["s"]; $t[$counter] = $row["t"]; $counter++; } $counter = 0; while($counter<2){ echo "<input type=\"hidden\" name=\"".$table."_q".$counter."\" value=\"".$id[$counter]."\">"; ${$table.'_a'.$counter} = array("$a[$counter]", "$b[$counter]", "$c[$counter]", "$d[$counter]", "$e[$counter]", "$f[$counter]", "$g[$counter]", "$h[$counter]", "$i[$counter]", "$j[$counter]", "$k[$counter]", "$l[$counter]", "$m[$counter]", "$n[$counter]", "$o[$counter]", "$p[$counter]", "$q[$counter]", "$r[$counter]", "$s[$counter]", "$t[$counter]"); ${$table.'_c'.$counter} = ${$table.'_a'.$counter}; shuffle(${$table.'_a'.$counter}); echo "<table border=\"1\" bordercolor=\"#000000\" rules=\"none\" frame=\"box\" cellpadding=\"5\"><tr>"; $number = 0; while($number<20){ if(!${$table.'_a'.$counter}[$number]){ echo ""; }else{ echo "<td>".${$table.'_a'.$counter}[$number]."</td>"; } $number++; } echo "</tr></table><br/><table><tr>"; foreach(${$table.'_c'.$counter} as $identifier => $column){ if(empty($column)){ break; }else{ echo "<td><select name=\"".$table."_a".$counter."_".$identifier."\"><option value=\"0\"></option>"; $number = 0; while($number<20){ if(!${$table.'_a'.$counter}[$number]){ echo ""; }else{ echo "<option value=\"".${$table.'_a'.$counter}[$number]."\">".${$table.'_a'.$counter}[$number]."</option>"; } $number++; } echo "</select></td>"; } } echo "</tr></table><br/>"; $counter++; } } Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/ Share on other sites More sharing options...
ram4nd Posted July 14, 2010 Share Posted July 14, 2010 instead $sql = mysql_query("SELECT * FROM $table WHERE id = '{$id}'") or die($error); use $sql = mysql_query('SELECT * FROM '.$table.' WHERE id = '.$id); Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1085874 Share on other sites More sharing options...
morocco-iceberg Posted July 14, 2010 Author Share Posted July 14, 2010 Changing that line of code created errors... Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1085878 Share on other sites More sharing options...
Pikachu2000 Posted July 14, 2010 Share Posted July 14, 2010 What are the new errors? Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1086011 Share on other sites More sharing options...
ram4nd Posted July 14, 2010 Share Posted July 14, 2010 that is progress you have double $ there and $letter is in double quotes where it's not necessary, thus its slower I think it's also better to use foreach instead of while while($row = mysql_fetch_array($sql)){ $$letter = $row["$letter"]; } Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1086043 Share on other sites More sharing options...
morocco-iceberg Posted July 15, 2010 Author Share Posted July 15, 2010 I changed that line of code to what you recommended again, but this time it didn't cause any errors. I've just woken up so I'm guessing it was a typo that caused them. I've taken out the double quotes around the $row["$letters"], didn't realise I hadn't before so cheers for picking that up. The $$letters are variable variables, so those should be fine as they are. The score still isn't adding up though. And I'm not exactly sure how to change that specific while loop into a foreach loop... Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1086233 Share on other sites More sharing options...
morocco-iceberg Posted July 15, 2010 Author Share Posted July 15, 2010 I found that I hadn't included the variable $identifier where it was required which meant it wasn't calling the correct values, so its all sweet now. Thanks for the help Link to comment https://forums.phpfreaks.com/topic/207717-no-errors-being-reported-but-code-wont-work-properly/#findComment-1086299 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.